",promise:a.resolve()}}}},"core/src/lib/actions/helpers/decorators/decorateNonGlobalJavaScriptCode.js":{script:function(e,t,n){"use strict";var r=n("@adobe/reactor-promise"),s=0;e.exports=function(a,e){var i="_runScript"+ ++s,t=new r(function(e,n){_satellite[i]=function(t){delete _satellite[i],new r(function(e){e(t.call(a.event.element,a.event,a.event.target,r))}).then(e,n)}});return{code:'",promise:t}}}},"core/src/lib/actions/helpers/decorators/decorateHtmlCode.js":{script:function(e,t,n,a){"use strict";var i=n("@adobe/reactor-promise"),r=0,s={};window._satellite=window._satellite||{},window._satellite._onCustomCodeSuccess=function(e){var t=s[e];t&&(delete s[e],t.resolve())},window._satellite._onCustomCodeFailure=function(e){var t=s[e];t&&(delete s[e],t.reject())};var o=function(e){return-1!==e.indexOf("${reactorCallbackId}")},c=function(e,t){return e.replace(/\${reactorCallbackId}/g,t)},l=function(e){return e.settings.isExternal};e.exports=function(e,t){var n;return l(e)&&(t=a.replaceTokens(t,e.event)),o(t)?(n=new i(function(e,t){s[String(r)]={resolve:e,reject:t}}),t=c(t,r),r+=1):n=i.resolve(),{code:t,promise:n}}}},"core/src/lib/actions/helpers/getSourceByUrl.js":{script:function(e,t,n){"use strict";var a=n("@adobe/reactor-load-script"),i=n("@adobe/reactor-promise"),r={},s={},o=function(e){return s[e]||(s[e]=a(e)),s[e]};_satellite.__registerScript=function(e,t){r[e]=t},e.exports=function(t){return r[t]?i.resolve(r[t]):new i(function(e){o(t).then(function(){e(r[t])},function(){e()})})}}},"core/src/lib/helpers/textMatch.js":{script:function(e){"use strict";e.exports=function(e,t){if(null==t)throw new Error("Illegal Argument: Pattern is not present");return null!=e&&("string"==typeof t?e===t:t instanceof RegExp&&t.test(e))}}},"core/src/lib/events/helpers/pageLifecycleEvents.js":{script:function(e,t,n){"use strict";var a=n("@adobe/reactor-window"),i=n("@adobe/reactor-document"),r=-1!==a.navigator.appVersion.indexOf("MSIE 10"),s="WINDOW_LOADED",o="DOM_READY",c="PAGE_BOTTOM",l=[c,o,s],u=function(e,t){return{element:e,target:e,nativeEvent:t}},d={};l.forEach(function(e){d[e]=[]});var g=function(e,t){l.slice(0,p(e)+1).forEach(function(e){b(t,e)})},f=function(){return"complete"===i.readyState?s:"interactive"===i.readyState?r?null:o:void 0},p=function(e){return l.indexOf(e)},b=function(t,e){d[e].forEach(function(e){m(t,e)}),d[e]=[]},m=function(e,t){var n=t.trigger,a=t.syntheticEventFn;n(a?a(e):null)};a._satellite=a._satellite||{},a._satellite.pageBottom=g.bind(null,c),i.addEventListener("DOMContentLoaded",g.bind(null,o),!0),a.addEventListener("load",g.bind(null,s),!0),a.setTimeout(function(){var e=f();e&&g(e)},0),e.exports={registerLibraryLoadedTrigger:function(e){e()},registerPageBottomTrigger:function(e){d[c].push({trigger:e})},registerDomReadyTrigger:function(e){d[o].push({trigger:e,syntheticEventFn:u.bind(null,i)})},registerWindowLoadedTrigger:function(e){d[s].push({trigger:e,syntheticEventFn:u.bind(null,a)})}}}},"core/src/lib/events/helpers/weakMap.js":{script:function(e,t,n){"use strict";var a=n("@adobe/reactor-window").WeakMap;if(void 0===a){var i=Object.defineProperty,r=Date.now()%1e9;(a=function(){this.name="__st"+(1e9*Math.random()>>>0)+r+++"__"}).prototype={set:function(e,t){var n=e[this.name];return n&&n[0]===e?n[1]=t:i(e,this.name,{value:[e,t],writable:!0}),this},get:function(e){var t;return(t=e[this.name])&&t[0]===e?t[1]:undefined},"delete":function(e){var t=e[this.name];return!(!t||t[0]!==e||(t[0]=t[1]=undefined,0))},has:function(e){var t=e[this.name];return!!t&&t[0]===e}}}e.exports=a}},"core/src/lib/events/helpers/debounce.js":{script:function(e){"use strict";e.exports=function(n,a,i){var r=null;return function(){var e=i||this,t=arguments;clearTimeout(r),r=setTimeout(function(){n.apply(e,t)},a)}}}},"core/src/lib/events/helpers/enableWeakMapDefaultValue.js":{script:function(e){"use strict";e.exports=function(t,n){var a=t.get;return t.get=function(e){return t.has(e)||t.set(e,n()),a.apply(this,arguments)},t}}},"core/src/lib/events/helpers/matchesSelector.js":{script:function(e,t,n,i){"use strict";e.exports=function(e,t){var n=e.matches||e.msMatchesSelector;if(n)try{return n.call(e,t)}catch(a){return i.logger.warn("Matching element failed. "+t+" is not a valid selector."),!1}return!1}}},"core/src/lib/events/helpers/matchesProperties.js":{script:function(e,t,n){"use strict";var i=n("./../../helpers/textMatch"),r=function(e,t){return"@text"===t||"innerText"===t?e.textContent||e.innerText:t in e?e[t]:e.getAttribute?e.getAttribute(t):void 0};e.exports=function(a,e){return!e||e.every(function(e){var t=r(a,e.name),n=e.valueIsRegex?new RegExp(e.value,"i"):e.value;return i(t,n)})}}},"core/src/lib/events/helpers/createBubbly.js":{script:function(e,t,n){"use strict";var a=n("./weakMap"),f=n("./matchesProperties"),p=n("./matchesSelector");e.exports=function(){var d=[],g=new a,e={addListener:function(e,t){d.push({settings:e,callback:t})},evaluateEvent:function(t,e){if(d.length&&!g.has(t)){for(var n=t.target,a=!1;n;){for(var i=!1,r=!1,s=0;sthis.MAX_SYNCS_LENGTH)for(e.sort(function(e,t){return parseInt(e.split("-")[1],10)-parseInt(t.split("-")[1],10)});e.join("*").length>this.MAX_SYNCS_LENGTH;)e.shift()},fireSync:function(e,t,n,a,u,i){var d=this;if(e){if("img"===t.tag){var r,s,o,c,l=t.url,g=p.loadSSL?"https:":"http:";for(r=0,s=l.length;rte.DAYS_BETWEEN_SYNC_ID_CALLS},attachIframeASAP:function(){function e(){t.startedAttachingIframe||(i.body?t.attachIframe():setTimeout(e,30))}var t=this;e()}}},F={audienceManagerServer:{},audienceManagerServerSecure:{},cookieDomain:{},cookieLifetime:{},cookieName:{},doesOptInApply:{},disableThirdPartyCalls:{},discardTrackingServerECID:{},idSyncAfterIDCallResult:{},idSyncAttachIframeOnWindowLoad:{},idSyncContainerID:{},idSyncDisable3rdPartySyncing:{},disableThirdPartyCookies:{},idSyncDisableSyncs:{},disableIdSyncs:{},idSyncIDCallResult:{},idSyncSSLUseAkamai:{},isCoopSafe:{},isIabContext:{},isOptInStorageEnabled:{},loadSSL:{},loadTimeout:{},marketingCloudServer:{},marketingCloudServerSecure:{},optInCookieDomain:{},optInStorageExpiry:{},overwriteCrossDomainMCIDAndAID:{},preOptInApprovals:{},previousPermissions:{},resetBeforeVersion:{},sdidParamExpiry:{},serverState:{},sessionCookieName:{},secureCookie:{},takeTimeoutMetrics:{},trackingServer:{},trackingServerSecure:{},whitelistIframeDomains:{},whitelistParentDomain:{}},x={getConfigNames:function(){return Object.keys(F)},getConfigs:function(){return F},normalizeConfig:function(e){return"function"!=typeof e?e:e()}},U=function(e){var i={};return e.on=function(e,t,n){if(!t||"function"!=typeof t)throw new Error("[ON] Callback should be a function.");i.hasOwnProperty(e)||(i[e]=[]);var a=i[e].push({callback:t,context:n})-1;return function(){i[e].splice(a,1),i[e].length||delete i[e]}},e.off=function(e,t){i.hasOwnProperty(e)&&(i[e]=i[e].filter(function(e){if(e.callback!==t)return e}))},e.publish=function(e){if(i.hasOwnProperty(e)){var t=[].slice.call(arguments,1);i[e].slice(0).forEach(function(e){e.callback.apply(e.context,t)})}},e.publish},ae={PENDING:"pending",CHANGED:"changed",COMPLETE:"complete"},ie={AAM:"aam",ADCLOUD:"adcloud",ANALYTICS:"aa",CAMPAIGN:"campaign",ECID:"ecid",LIVEFYRE:"livefyre",TARGET:"target",MEDIA_ANALYTICS:"mediaaa"},re=(e(m={},ie.AAM,565),e(m,ie.ECID,565),m),se=(e(_={},ie.AAM,[1,10]),e(_,ie.ECID,[1,10]),_),oe=["videoaa","iabConsentHash"],ce=(h=ie,Object.keys(h).map(function(e){return h[e]})),le=function(){var a={};return a.callbacks=Object.create(null),a.add=function(e,t){if(!c(t))throw new Error("[callbackRegistryFactory] Make sure callback is a function or an array of functions.");a.callbacks[e]=a.callbacks[e]||[];var n=a.callbacks[e].push(t)-1;return function(){a.callbacks[e].splice(n,1)}},a.execute=function(e,t){if(a.callbacks[e]){t=(t=void 0===t?[]:t)instanceof Array?t:[t];try{for(;a.callbacks[e].length;){var n=a.callbacks[e].shift();"function"==typeof n?n.apply(null,t):n instanceof Array&&n[1].apply(n[0],t)}delete a.callbacks[e]}catch(a){}}},a.executeAll=function(n,e){(e||n&&!o(n))&&Object.keys(a.callbacks).forEach(function(e){var t=void 0!==n[e]?n[e]:"";a.execute(e,t)},a)},a.hasCallbacks=function(){return Boolean(Object.keys(a.callbacks).length)},a},ue=function(){},de=function(e){var t=window.console;return!!t&&"function"==typeof t[e]},ge=function(a,i,e){return e()?function(){if(de(a)){for(var e=arguments.length,t=new Array(e),n=0;n>>1:t>>>1;i.push(t)}return function(e,t){e=unescape(encodeURIComponent(e)),t||(t=0),t^=-1;for(var n=0;n>>8^i[a]}return(t^=-1)>>>0}}(),be=new fe("[ADOBE OPT-IN]"),me=function(e,t){return H(e)===t},_e=function(e,t){return e instanceof Array?e:me(e,"string")?[e]:t||[]},he=function(t){var e=Object.keys(t);return!!e.length&&e.every(function(e){return!0===t[e]})},ye=function(e,t){var n=1>>t|e<<32-t}for(var n,a,i=Math.pow,r=i(2,32),s="",o=[],c=8*e.length,l=H.h=H.h||[],u=H.k=H.k||[],d=u.length,g={},f=2;d<64;f++)if(!g[f]){for(n=0;n<313;n+=f)g[n]=f;l[d]=i(f,.5)*r|0,u[d++]=i(f,1/3)*r|0}for(e+="\x80";e.length%64-56;)e+="\0";for(n=0;n>8)return;o[n>>2]|=a<<(3-n)%4*8}for(o[o.length]=c/r|0,o[o.length]=c,a=0;a>>3)+p[n-7]+(t(_,17)^t(_,19)^_>>>10)|0);(l=[S+((t(h,2)^t(h,13)^t(h,22))+(h&l[1]^h&l[2]^l[1]&l[2]))|0].concat(l))[4]=l[4]+S|0}for(n=0;n<8;n++)l[n]=l[n]+b[n]|0}for(n=0;n<8;n++)for(a=3;a+1;a--){var v=l[n]>>8*a&255;s+=(v<16?0:"")+v.toString(16)}return s},Ve=function(e,t){return"SHA-256"!==t&&"SHA256"!==t&&"sha256"!==t&&"sha-256"!==t||(e=je(e)),e},Fe=function(e){return String(e).trim().toLowerCase()},xe=Re.OptIn;Y.defineGlobalNamespace(),window.adobe.OptInCategories=xe.Categories;var Ue=function(a,n,e){function g(){_._customerIDsHashChanged=!1}function t(e){var a=e;return function(e){var t=e||P.location.href;try{var n=_._extractParamFromUri(t,a);if(n)return V.parsePipeDelimetedKeyValues(n)}catch(e){}}}function i(e){function t(e,t,n){e&&e.match(te.VALID_VISITOR_ID_REGEX)&&(n===I&&(A=!0),t(e))}t(e[I],_.setMarketingCloudVisitorID,I),_._setFieldExpire(O,-1),t(e[N],_.setAnalyticsVisitorID)}function r(e){e=e||{},_._supplementalDataIDCurrent=e.supplementalDataIDCurrent||"",_._supplementalDataIDCurrentConsumed=e.supplementalDataIDCurrentConsumed||{},_._supplementalDataIDLast=e.supplementalDataIDLast||"",_._supplementalDataIDLastConsumed=e.supplementalDataIDLastConsumed||{}}function s(e){function i(e,t,n){return(n=n?n+="|":n)+(e+"=")+encodeURIComponent(t)}function t(e,t){var n=t[0],a=t[1];return null!=a&&a!==L&&(e=i(n,a,e)),e}var n,a=e.reduce(t,"");return(n=(n=a)?n+="|":n)+"TS="+V.getTimestampInSeconds()}function o(e){var t=e.minutesToLive,n="";return(_.idSyncDisableSyncs||_.disableIdSyncs)&&(n=n||"Error: id syncs have been disabled"),"string"==typeof e.dpid&&e.dpid.length||(n=n||"Error: config.dpid is empty"),"string"==typeof e.url&&e.url.length||(n=n||"Error: config.url is empty"),void 0===t?t=20160:(t=parseInt(t,10),(isNaN(t)||t<=0)&&(n=n||"Error: config.minutesToLive needs to be a positive number")),{error:n,ttl:t}}function c(){return!(!_.configs.doesOptInApply||h.optIn.isComplete&&d())}function d(){return _.configs.doesOptInApply&&_.configs.isIabContext?h.optIn.isApproved(h.optIn.Categories.ECID)&&v:h.optIn.isApproved(h.optIn.Categories.ECID)}function l(){[["getMarketingCloudVisitorID"],["setCustomerIDs",void 0],["syncIdentity",void 0],["getAnalyticsVisitorID"],["getAudienceManagerLocationHint"],["getLocationHint"],["getAudienceManagerBlob"]].forEach(function(e){var t=e[0],n=2===e.length?e[1]:"",a=_[t];_[t]=function(e){return d()&&_.isAllowed()?a.apply(_,arguments):("function"==typeof e&&_._callCallback(e,[n]),n)}})}function u(){var e=_._getAudienceManagerURLData(),t=e.url;return _._loadData(T,t,null,e)}function f(e,t){if(v=!0,e)throw new Error("[IAB plugin] : "+e);t&&t.gdprApplies&&(y=t.consentString,S=t.hasConsentChangedSinceLastCmpPull?1:0),u(),m()}function p(e,t){if(v=!0,e)throw new Error(
"[IAB plugin] : "+e);t.gdprApplies&&(y=t.consentString,S=t.hasConsentChangedSinceLastCmpPull?1:0),_.init(),m()}function b(){h.optIn.isComplete&&(h.optIn.isApproved(h.optIn.Categories.ECID)?_.configs.isIabContext?h.optIn.execute({command:"iabPlugin.fetchConsentData",callback:p}):(_.init(),m()):_.configs.isIabContext?h.optIn.execute({command:"iabPlugin.fetchConsentData",callback:f}):(l(),m()))}function m(){h.optIn.off("complete",b)}if(!e||e.split("").reverse().join("")!==a)throw new Error("Please use `Visitor.getInstance` to instantiate Visitor.");var _=this,h=window.adobe,y="",S=0,v=!1,A=!1;_.version="5.0.1";var P=G,k=P.Visitor;k.version=_.version,k.AuthState=K.AUTH_STATE,k.OptOut=K.OPT_OUT,P.s_c_in||(P.s_c_il=[],P.s_c_in=0),_._c="Visitor",_._il=P.s_c_il,_._in=P.s_c_in,_._il[_._in]=_,P.s_c_in++,_._instanceType="regular",_._log={requests:[]},_.marketingCloudOrgID=a,_.cookieName="AMCV_"+a,_.sessionCookieName="AMCVS_"+a,_.cookieDomain=Q(),_.loadSSL=!0,_.loadTimeout=3e4,_.CORSErrors=[],_.marketingCloudServer=_.audienceManagerServer="dpm.demdex.net",_.sdidParamExpiry=30;var E=null,T="MC",I="MCMID",C="MCIDTS",D="A",N="MCAID",w="AAM",O="MCAAMB",L="NONE",B=function(e){return!Object.prototype[e]},R=ee(_);_.FIELDS=K.FIELDS,_.cookieRead=function(e){return X.get(e)},_.cookieWrite=function(e,t,n){var a=_.cookieLifetime?(""+_.cookieLifetime).toUpperCase():"",i=!1;return _.configs&&_.configs.secureCookie&&"https:"===location.protocol&&(i=!0),X.set(e,""+t,{expires:n,domain:_.cookieDomain,cookieLifetime:a,secure:i})},_.resetState=function(e){e?_._mergeServerState(e):r()},_._isAllowedDone=!1,_._isAllowedFlag=!1,_.isAllowed=function(){return _._isAllowedDone||(_._isAllowedDone=!0,(_.cookieRead(_.cookieName)||_.cookieWrite(_.cookieName,"T",1))&&(_._isAllowedFlag=!0)),"T"===_.cookieRead(_.cookieName)&&_._helpers.removeCookie(_.cookieName),_._isAllowedFlag},_.setMarketingCloudVisitorID=function(e){_._setMarketingCloudFields(e)},_._use1stPartyMarketingCloudServer=!1,_.getMarketingCloudVisitorID=function(e,t){_.marketingCloudServer&&_.marketingCloudServer.indexOf(".demdex.net")<0&&(_._use1stPartyMarketingCloudServer=!0);var n=_._getAudienceManagerURLData("_setMarketingCloudFields"),a=n.url;return _._getRemoteField(I,a,e,t,n)};var M=function(t,e){var n={};_.getMarketingCloudVisitorID(function(){e.forEach(function(e){n[e]=_._getField(e,!0)}),-1!==e.indexOf("MCOPTOUT")?_.isOptedOut(function(e){n.MCOPTOUT=e,t(n)},null,!0):t(n)},!0)};_.getVisitorValues=function(e,t){var n={MCMID:{fn:_.getMarketingCloudVisitorID,args:[!0],context:_},MCOPTOUT:{fn:_.isOptedOut,args:[void 0,!0],context:_},MCAID:{fn:_.getAnalyticsVisitorID,args:[!0],context:_},MCAAMLH:{fn:_.getAudienceManagerLocationHint,args:[!0],context:_},MCAAMB:{fn:_.getAudienceManagerBlob,args:[!0],context:_}},a=t&&t.length?Y.pluck(n,t):n;t&&-1===t.indexOf("MCAID")?M(e,t):z(a,e)},_._currentCustomerIDs={},_._customerIDsHashChanged=!1,_._newCustomerIDsHash="",_.setCustomerIDs=function(e,t){if(!_.isOptedOut()&&e){if(!Y.isObject(e)||Y.isObjectEmpty(e))return!1;var n,a,i,r;for(n in _._readVisitor(),e)if(B(n)&&(_._currentCustomerIDs.dataSources=_._currentCustomerIDs.dataSources||{},t=(a=e[n]).hasOwnProperty("hashType")?a.hashType:t,a))if("object"===H(a)){var s={};if(a.id){if(t){if(!(r=Ve(Fe(a.id),t)))return;a.id=r,s.hashType=t}s.id=a.id}null!=a.authState&&(s.authState=a.authState),_._currentCustomerIDs.dataSources[n]=s}else if(t){if(!(r=Ve(Fe(a),t)))return;_._currentCustomerIDs.dataSources[n]={id:r,hashType:t}}else _._currentCustomerIDs.dataSources[n]={id:a};var o=_.getCustomerIDs(!0),c=_._getField("MCCIDH"),l="";for(i in c||(c=0),o){var u=o[i];if(!Y.isObjectEmpty(u))for(n in u)B(n)&&(l+=(l?"|":"")+n+"|"+((a=u[n]).id?a.id:"")+(a.authState?a.authState:""))}_._newCustomerIDsHash=String(_._hash(l)),_._newCustomerIDsHash!==c&&(_._customerIDsHashChanged=!0,_._mapCustomerIDs(g))}},_.syncIdentity=function(e,t){if(!_.isOptedOut()&&e){if(!Y.isObject(e)||Y.isObjectEmpty(e))return!1;var n,a,i,r,s;for(n in _._readVisitor(),e)if(B(n)&&(_._currentCustomerIDs.nameSpaces=_._currentCustomerIDs.nameSpaces||{},t=(a=e[n]).hasOwnProperty("hashType")?a.hashType:t,a&&"object"===H(a))){var o={};if(a.id){if(t){if(!(i=Ve(Fe(a.id),t)))return;a.id=i,o.hashType=t}o.id=a.id}null!=a.authState&&(o.authState=a.authState),a.dataSource&&(_._currentCustomerIDs.dataSources=_._currentCustomerIDs.dataSources||{},r=a.dataSource,_._currentCustomerIDs.dataSources[r]=o),_._currentCustomerIDs.nameSpaces[n]=o}var c=_.getCustomerIDs(!0),l=_._getField("MCCIDH"),u="";for(s in l||(l="0"),c){var d=c[s];if(!Y.isObjectEmpty(d))for(n in d)B(n)&&(u+=(u?"|":"")+n+"|"+((a=d[n]).id?a.id:"")+(a.authState?a.authState:""))}_._newCustomerIDsHash=String(_._hash(u)),_._newCustomerIDsHash!==l&&(_._customerIDsHashChanged=!0,_._mapCustomerIDs(g))}},_.getCustomerIDs=function(e){_._readVisitor();var t,n,a={dataSources:{},nameSpaces:{}},i=_._currentCustomerIDs.dataSources;for(t in i)B(t)&&(n=i[t]).id&&(a.dataSources[t]||(a.dataSources[t]={}),a.dataSources[t].id=n.id,null!=n.authState?a.dataSources[t].authState=n.authState:a.dataSources[t].authState=k.AuthState.UNKNOWN,n.hashType&&(a.dataSources[t].hashType=n.hashType));var r=_._currentCustomerIDs.nameSpaces;for(t in r)B(t)&&(n=r[t]).id&&(a.nameSpaces[t]||(a.nameSpaces[t]={}),a.nameSpaces[t].id=n.id,null!=n.authState?a.nameSpaces[t].authState=n.authState:a.nameSpaces[t].authState=k.AuthState.UNKNOWN,n.hashType&&(a.nameSpaces[t].hashType=n.hashType));return e?a:a.dataSources},_.setAnalyticsVisitorID=function(e){_._setAnalyticsFields(e)},_.getAnalyticsVisitorID=function(e,t,n){if(!V.isTrackingServerPopulated()&&!n)return _._callCallback(e,[""]),"";var a="";if(n||(a=_.getMarketingCloudVisitorID(function(){_.getAnalyticsVisitorID(e,!0)})),a||n){var i=n?_.marketingCloudServer:_.trackingServer,r="";_.loadSSL&&(n?_.marketingCloudServerSecure&&(i=_.marketingCloudServerSecure):_.trackingServerSecure&&(i=_.trackingServerSecure));var s={};if(i){var o="http"+(_.loadSSL?"s":"")+"://"+i+"/id",c="d_visid_ver="+_.version+"&mcorgid="+encodeURIComponent(_.marketingCloudOrgID)+(a?"&mid="+encodeURIComponent(a):"")+(_.idSyncDisable3rdPartySyncing||_.disableThirdPartyCookies?"&d_coppa=true":""),l=["s_c_il",_._in,"_set"+(n?"MarketingCloud":"Analytics")+"Fields"];r=o+"?"+c+"&callback=s_c_il%5B"+_._in+"%5D._set"+(n?"MarketingCloud":"Analytics")+"Fields",s.corsUrl=o+"?"+c,s.callback=l}return s.url=r,_._getRemoteField(n?I:N,r,e,t,s)}return""},_.getAudienceManagerLocationHint=function(e,t){if(_.getMarketingCloudVisitorID(function(){_.getAudienceManagerLocationHint(e,!0)})){var n=_._getField(N);if(!n&&V.isTrackingServerPopulated()&&(n=_.getAnalyticsVisitorID(function(){_.getAudienceManagerLocationHint(e,!0)})),n||!V.isTrackingServerPopulated()){var a=_._getAudienceManagerURLData(),i=a.url;return _._getRemoteField("MCAAMLH",i,e,t,a)}}return""},_.getLocationHint=_.getAudienceManagerLocationHint,_.getAudienceManagerBlob=function(e,t){if(_.getMarketingCloudVisitorID(function(){_.getAudienceManagerBlob(e,!0)})){var n=_._getField(N);if(!n&&V.isTrackingServerPopulated()&&(n=_.getAnalyticsVisitorID(function(){_.getAudienceManagerBlob(e,!0)})),n||!V.isTrackingServerPopulated()){var a=_._getAudienceManagerURLData(),i=a.url;return _._customerIDsHashChanged&&_._setFieldExpire(O,-1),_._getRemoteField(O,i,e,t,a)}}return""},_._supplementalDataIDCurrent="",_._supplementalDataIDCurrentConsumed={},_._supplementalDataIDLast="",_._supplementalDataIDLastConsumed={};var j=!(_.getSupplementalDataID=function(e,t){_._supplementalDataIDCurrent||t||(_._supplementalDataIDCurrent=_._generateID(1));var n=_._supplementalDataIDCurrent;return _._supplementalDataIDLast&&!_._supplementalDataIDLastConsumed[e]?(n=_._supplementalDataIDLast,_._supplementalDataIDLastConsumed[e]=!0):n&&(_._supplementalDataIDCurrentConsumed[e]&&(_._supplementalDataIDLast=_._supplementalDataIDCurrent,_._supplementalDataIDLastConsumed=_._supplementalDataIDCurrentConsumed,_._supplementalDataIDCurrent=n=t?"":_._generateID(1),_._supplementalDataIDCurrentConsumed={}),n&&(_._supplementalDataIDCurrentConsumed[e]=!0)),n});_._liberatedOptOut=null,_.getOptOut=function(e,t){var n=_._getAudienceManagerURLData("_setMarketingCloudFields"),a=n.url;if(d())return _._getRemoteField("MCOPTOUT",a,e,t,n);if(_._registerCallback("liberatedOptOut",e),null!==_._liberatedOptOut)return _._callAllCallbacks("liberatedOptOut",[_._liberatedOptOut]),j=!1,_._liberatedOptOut;if(j)return null;j=!0;var i="liberatedGetOptOut";return n.corsUrl=n.corsUrl.replace(/\.demdex\.net\/id\?/,".demdex.net/optOutStatus?"),n.callback=[i],G[i]=function(e){if(e===Object(e)){var t,n,a=Y.parseOptOut(e,t,L);t=a.optOut,n=1e3*a.d_ottl,_._liberatedOptOut=t,setTimeout(function(){_._liberatedOptOut=null},n)}_._callAllCallbacks("liberatedOptOut",[t]),j=!1},R.fireCORS(n),null},_.isOptedOut=function(n,a,e){a||(a=k.OptOut.GLOBAL);var t=_.getOptOut(function(e){var t=e===k.OptOut.GLOBAL||0<=e.indexOf(a);_._callCallback(n,[t])},e);return t?t===k.OptOut.GLOBAL||0<=t.indexOf(a):null},_._fields=null,_._fieldsExpired=null,_._hash=function(e){var t,n=0;if(e)for(t=0;tte.ADOBE_MC_TTL_IN_MIN||e.MCORGID!==a)return;i(e)}},_._mergeServerState=function(e){if(e)try{if(a=e,(e=V.isObject(a)?a:JSON.parse(a))[_.marketingCloudOrgID]){var t=e[_.marketingCloudOrgID];n=t.customerIDs,V.isObject(n)&&_.setCustomerIDs(n),r(t.sdid)}}catch(e){throw new Error("`serverState` has an invalid format.")}var n,a},_._timeout=null,_._loadData=function(e,t,n,a){t=_._addQuerystringParam(t,"d_fieldgroup",e,1),a.url=_._addQuerystringParam(a.url,"d_fieldgroup",e,1),a.corsUrl=_._addQuerystringParam(a.corsUrl,"d_fieldgroup",e,1),U.fieldGroupObj[e]=!0,a===Object(a)&&a.corsUrl&&"XMLHttpRequest"===R.corsMetadata.corsType&&R.fireCORS(a,n,e)},_._clearTimeout=function(e){null!=_._timeout&&_._timeout[e]&&(clearTimeout(_._timeout[e]),_._timeout[e]=0)},_._settingsDigest=0,_._getSettingsDigest=function(){if(!_._settingsDigest){var e=_.version;_.audienceManagerServer&&(e+="|"+_.audienceManagerServer),_.audienceManagerServerSecure&&(e+="|"+_.audienceManagerServerSecure),_._settingsDigest=_._hash(e)}return _._settingsDigest},_._readVisitorDone=!1,_._readVisitor=function(){if(!_._readVisitorDone){_._readVisitorDone=!0;var e,t,n,a,i,r,s=_._getSettingsDigest(),o=!1,c=_.cookieRead(_.cookieName),l=new Date;if(c||A||_.discardTrackingServerECID||(c=_.cookieRead(te.FIRST_PARTY_SERVER_COOKIE)),null==_._fields&&(_._fields={}),c&&"T"!==c)for((c=c.split("|"))[0].match(/^[\-0-9]+$/)&&(parseInt(c[0],10)!==s&&(o=!0),c.shift()),c.length%2==1&&c.pop(),e=0;e=1e3*i||r&&!_.cookieRead(_.sessionCookieName))&&(_._fieldsExpired||(_._fieldsExpired={}),_._fieldsExpired[n]=!0)));!_._getField(N)&&V.isTrackingServerPopulated()&&(c=_.cookieRead("s_vi"))&&1<(c=c.split("|")).length&&0<=c[0].indexOf("v1")&&(0<=(e=(a=c[1]).indexOf("["))&&(a=a.substring(0,e)),a&&a.match(te.VALID_VISITOR_ID_REGEX)&&_._setField(N,a))}},_._appendVersionTo=function(e){var t="vVersion|"+_.version,n=e?_._getCookieVersion(e):null;return n?J.areVersionsDifferent(n,_.version)&&(e=e.replace(te.VERSION_REGEX,t)):e+=(e?"|":"")+t,e},_._writeVisitor=function(){var e,t,n=_._getSettingsDigest();for(e in _._fields)B(e)&&_._fields[e]&&"expire"!==e.substring(0,6)&&(t=_._fields[e],n+=(n?"|":"")+e+(_._fields["expire"+e]?"-"+_._fields["expire"+e]:"")+"|"+t);n=_._appendVersionTo(n),_.cookieWrite(_.cookieName,n,1)},_._getField=function(e,t){return null==_._fields||!t&&_._fieldsExpired&&_._fieldsExpired[e]?null:_._fields[e]},_._setField=function(e,t,n){null==_._fields&&(_._fields={}),_._fields[e]=t,n||_._writeVisitor()},_._getFieldList=function(e,t){var n=_._getField(e,t);return n?n.split("*"):null},_._setFieldList=function(e,t,n){_._setField(e,t?t.join("*"):"",n)},_._getFieldMap=function(e,t){var n=_._getFieldList(e,t);if(n){var a,i={};for(a=0;a>16)+(t>>16)+(n>>16)<<16|65535&n}function s(e,t){return e<>>32-t}function o(e,t,n,a,i,r){return d(s(d(d(t,e),d(a,r)),i),n)}function g(e,t,n,a,i,r,s){return o(t&n|~t&a,e,t,i,r,s)}function f(e,t,n,a,i,r,s){return o(t&a|n&~a,e,t,i,r,s)}function p(e,t,n,a,i,r,s){return o(t^n^a,e,t,i,r,s)}function b(e,t,n,a,i,r,s){return o(n^(t|~a),e,t,i,r,s)}function c(e,t){e[t>>5]|=128<>>9<<4)]=t;var n,a,i,r,s,o=1732584193,c=-271733879,l=-1732584194,u=271733878;for(n=0;n>5]>>>t%32&255);return n}function u(e){var t,n=[];for(n[(e.length>>2)-1]=void 0,t=0;t>5]|=(255&e.charCodeAt(t/8))<>>4&15)+a.charAt(15&t);return i}function i(e){return unescape(encodeURIComponent(e))}function r(e){return t(i(e))}function m(e){return a(r(e))}function _(e,t){return n(i(e),i(t))}function h(e,t){return a(_(e,t))}function e(e,t,n){return t?n?_(t,e):h(t,e):n?r(e):m(e)}y.md5=e}(),function(){"use strict";var e={startsWith:function(e,t){return 0==e.indexOf(t)}};y.StringUtils=e}(),function(){"use strict";var i={clone:function(e){var t={};for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);return t},merge:function(e,t){var n=i.clone(e);for(var a in t)t.hasOwnProperty(a)&&(n[a]=t[a]);return n},append:function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])}};y.ObjectUtils=i}(),function(){"use strict";function c(e){if(null==e)return!0;for(var t=0;t"},s.prototype.shutdown=function(){this._isShutDown||(this._logger.debug(a,"#shutdown > Shutting down"),this.off(),this._requests={},this._commands={},this._isShutDown=!0)},s.prototype.on=function(e,t,n){this._isShutDown||(this._listeners[e]||(this._listeners[e]=[]),this._listeners[e].push({fn:t,ctx:n}))},s.prototype.off=function(e,t,n){if(!this._isShutDown){if(t="function"==typeof t?t:null,!e&&null==t&&!n)return void(this._listeners={});if(e)this._removeListener(e,t,n);else for(e in this._listeners)this._listeners.hasOwnProperty(e)&&this._removeListener(e,t,n)}},s.prototype.trigger=function(e){if(!this._isShutDown)for(var t in this._listeners)if(this._listeners.hasOwnProperty(t)&&r(t,e.name))for(var n=this._listeners[t].slice(0),a=0;a No command handler for: "+e);n.cmd.call(n.ctx,t)}},s.prototype.reply=function(e,t,n){this._isShutDown||(this._requests[e]={fn:t,ctx:n})},s.prototype.request=function(e){if(!this._isShutDown){var t=this._requests[e];return t?t.fn.call(t.ctx):(this._logger.warn(a,"#request > No request handler for: "+e),null)}},s.prototype._removeListener=function(e,t,n){t="function"==typeof t?t:null;var a=this._listeners[e];if(a){if(!a.length||null==t&&!n)return void delete this._listeners[e];for(var i=0;i Replacing plugin: "+t),(this._plugins[t]=e).bootstrap(this)},n.prototype.setupPlugins=function(){for(var e in this._plugins)this._plugins.hasOwnProperty(e)&&this._plugins[e].setup()},n.prototype.pluginExists=function(e){return!!this._plugins[e]},n.prototype.isPluginInitialized=function(e){return this._plugins[e]&&this._plugins[e].isInitialized()},n.prototype.on=function(e,t,n,a){this._dataChannel.on(e+r.SEPARATOR+t,n,a)},n.prototype.off=function(e,t,n,a){var i=e&&t?e+r.SEPARATOR+t:null;this._dataChannel.off(i,n,a)},n.prototype.trigger=function(e){var t=e.name,n=this._behaviours[t];if(n){var a,i,r,s,o,c={},l={};for(a=0;a"},n.prototype._enabled=function(){},n.prototype._disabled=function(){},n.prototype._teardown=function(){},n.prototype._canProcess=function(){return this._isEnabled?!this._isDestroyed||(this._logger.error(this._logTag,"Plugin destroyed."),!1):(this._logger.error(this._logTag,"Plugin disabled."),!1)},n.prototype._trigger=function(e,t){var n=r.createFromTrigger(new i(this.getName(),e));n.data=t,this._pluginManager.trigger(n)},e.plugin.BasePlugin=n}(t,a),function(e){"use strict";function a(e,t,n){this.name=e,this.interval=t,this.isActive=!1,this.repeatCount=void 0!==n?n:r,this._nextTickTimestamp=0,this.reset()}function t(e,t){if(!e)throw new Error("Reference to the ClockService object cannot be NULL");if(this._service=e,!t)throw new Error("Reference to the logger object cannot be NULL");this._logger=t,this._isDestroyed=!1,this._timers={};var n=this;this._clock=window.setInterval(function(){n._onTick()},1e3*s)}a.prototype.reset=function(){this.tick=0,this._createdTimestamp=(new Date).getTime(),this._updateNextTickTimestamp()},a.prototype.shouldTick=function(){return(new Date).getTime()>this._nextTickTimestamp-n/2&&(this.tick++,this._updateNextTickTimestamp(),!0)},a.prototype._updateNextTickTimestamp=function(){var e=(new Date).getTime();this._nextTickTimestamp=e+1e3*this.interval-1},t.prototype.createTimer=function(e,t,n){this._timers[e]=new a(e,t,n)},t.prototype.destroyTimer=function(e){delete this._timers[e]},t.prototype.resumeTimer=function(e,t){t=void 0!==t&&t,this._logger.debug(i,"#resumeTimer(name="+e+", reset="+t+")");var n=this._timers[e];n&&(n.isActive=!0,t&&n.reset())},t.prototype.pauseTimer=function(e,t){t=void 0!==t&&t,this._logger.debug(i,"#pauseTimer(name="+e+", reset="+t+")");var n=this._timers[e];n&&(n.isActive=!1,t&&n.reset())},t.prototype.isTimerPaused=function(e){var t=this._timers[e];return!!t&&!t.isActive},t.prototype.destroy=function(){this._isDestroyed||(this._isDestroyed=!0,this._timers={},window.clearInterval(this._clock))},t.prototype._onTick=function(){for(var e in this._timers)if(this._timers.hasOwnProperty(e)){var t=this._timers[e];t.isActive&&t.shouldTick()&&(1 "+t.name+"("+t.tick+" | "+t.repeatCount+")"),0!=t.repeatCount?(this._service.onTick(t.name,t.interval,t.tick),t.repeatCount!=r&&t.repeatCount--):this.destroyTimer(t.name))}};var i="service.clock::TimerManager",r=-1,s=.25,n=1e3*s;e.clock.TimerDescriptor=a,e.clock.TimerManager=t}(n),function(e,t,n){"use strict";function a(e){if(a.__super__.constructor.call(this,o),!e)throw new Error("Reference to the logger object cannot be NULL");this._logger=e,this._timerManager=new i(this,this._logger),this._setupDataResolver()}var i=n.clock.TimerManager,s=t.StringUtils,r=e.plugin.BasePlugin;e.extend(a,r),a.prototype.bootstrap=function(e){a.__super__.bootstrap.call(this,e),this._pluginManager.comply(this,c,this._cmdCreate),this._pluginManager.comply(this,u,this._cmdResume),this._pluginManager.comply(this,l,this._cmdPause),this._pluginManager.comply(this,d,this._cmdDestroy)},a.prototype._teardown=function(){this._timerManager.destroy()},a.prototype._cmdCreate=function(e){var t=e[p]||h;this._timerManager.createTimer(e[g],e[f],t)},a.prototype._cmdPause=function(e){this._timerManager.pauseTimer(e[g],!!e[m])},a.prototype._cmdResume=function(e){this._timerManager.resumeTimer(e[g],!!e[m])},a.prototype._cmdDestroy=function(e){this._timerManager.destroyTimer(e[g])},a.prototype.onTick=function(e,t,n){e+=".tick";var a={};a[g]=e,a[f]=t,a[b]=n,this._trigger(e,a)},a.prototype._setupDataResolver=function(){var r={},t=this._timerManager;r[_]=function(e){return t.isTimerPaused(e)},this._dataResolver=function(e){if(!e||0==e.length)return null;for(var t=null,n=0;n No active tracking session.");if(this._isTrackingSessionStarted)return void this._logger.info(this._logTag,"#trackSessionStart() > Tracking session already started.");this._trigger(b),this._isTrackingSessionStarted=!0;var e=this._dataResolver(["video.resumed"]);e.hasOwnProperty("video.resumed")&&e["video.resumed"]&&this._trigger(m)}},n.prototype.trackVideoLoad=function(){this._logger.info(this._logTag,"#trackVideoLoad()"),this._canProcess()&&(this._isTrackingAdBreak=!1,this._isTrackingAd=!1,this._contentStarted=!1,this._isPaused=!0,this._isBuffering=!1,this._isSeeking=!1,this._playheadTimer=null,this._previousPlayhead=-1,this._stalledPlayheadCount=0,this._playheadStalled=!1,this._videoIdle=!1,this._trigger(g),this._isTrackingSessionActive=!0,this._isTrackingSessionStarted=!1)},n.prototype.trackVideoUnload=function(){if(this._logger.info(this._logTag,"#trackVideoUnload()"),this._canProcess()){if(!this._isTrackingSessionActive)return void this._logger.warn(this._logTag,"#trackVideoUnload() > No active tracking session.");this._stopPlayheadTimer(),this._trigger(f),this._isTrackingSessionActive=!1,this._isTrackingSessionStarted=!1,this._contentStarted=!1}},n.prototype.beginReporting=function(){this._logger.info(this._logTag,"#beginReporting()"),this._canProcess()&&this._startSessionIfNeeded("beginReporting")&&this._trigger(F)},n.prototype.trackPlay=function(){this._logger.info(this._logTag,"#trackPlay()"),this._canProcess()&&this._startSessionIfNeeded("trackPlay")&&this._allowPlayerStateChange()&&(this._isPaused=!1,this._trigger(S),this._startPlayheadTimer())},n.prototype.trackPause=function(){if(this._logger.info(this._logTag,"#trackPause()"),this._canProcess()&&this._startSessionIfNeeded("trackPause")&&this._allowPlayerStateChange()){this._stopPlayheadTimer();var e={};e[U]=!1,this._isPaused=!0,this._trigger(v,e)}},n.prototype.trackBufferStart=function(){this._logger.info(this._logTag,"#trackBufferStart()"),this._canProcess()&&this._startSessionIfNeeded("trackBufferStart")&&this._allowPlayerStateChange()&&(this._stopPlayheadTimer(),this._isBuffering=!0,this._trigger(C))},n.prototype.trackBufferComplete=function(){this._logger.info(this._logTag,"#trackBufferComplete()"),this._canProcess()&&this._startSessionIfNeeded("trackBufferComplete")&&this._allowPlayerStateChange()&&(this._isBuffering=!1,this._trigger(D),this._startPlayheadTimer())},n.prototype.trackSeekStart=function(){this._logger.info(this._logTag,"#trackSeekStart()"),this._canProcess()&&this._startSessionIfNeeded("trackSeekStart")&&this._allowPlayerStateChange()&&(this._stopPlayheadTimer(),this._isSeeking=!0,this._trigger(N))},n.prototype.trackSeekComplete=function(){this._logger.info(this._logTag,"#trackSeekComplete()"),this._canProcess()&&this._startSessionIfNeeded("trackSeekComplete")&&this._allowPlayerStateChange()&&(this._isSeeking=!1,this._trigger(w),this._startPlayheadTimer())},n.prototype.trackComplete=function(e,t){if(this._logger.info(this._logTag,"#trackComplete()"),this._canProcess()&&this._startSessionIfNeeded("trackComplete")){if(this._stopPlayheadTimer(),this._videoIdle)return this._logger.info(this._logTag,"#trackComplete() > Video session is already in Idle State."),void(e&&e());var n={};n[x]=e,(t=void 0===t||!!t)?this._trigger(_,n):(this._trigger(h),this._trigger(p,n))}},n.prototype.trackTimedMetadata=function(e){this._logger.info(this._logTag,"#trackComplete()"),this._canProcess()&&this._startSessionIfNeeded("trackTimedMetadata")&&this._trigger(y,e)},n.prototype.trackChapterStart=function(){this._logger.info(this._logTag,"#trackChapterStart()"),this._canProcess()&&this._startSessionIfNeeded("#trackChapterStart")&&this._trigger(O)},n.prototype.trackChapterComplete=function(){this._logger.info(this._logTag,"#trackChapterComplete()"),this._canProcess()&&this._startSessionIfNeeded("trackChapterComplete")&&this._trigger(L)},n.prototype.trackChapterSkip=function(){this._logger.info(this._logTag,"#trackChapterSkip()"),this._canProcess()&&this._startSessionIfNeeded("trackChapterSkip")&&this._trigger(B)},n.prototype.trackAdBreakStart=function(){this._logger.info(this._logTag,"#trackAdBreakStart()"),this._canProcess()&&this._startSessionIfNeeded("trackAdBreakStart")&&(this._trigger(P),this._isTrackingAdBreak=!0)},n.prototype.trackAdBreakComplete=function(){this._logger.info(this._logTag,"#trackAdBreakComplete()"),this._canProcess()&&this._startSessionIfNeeded("trackAdBreakComplete")&&(this._trigger(k),this._isTrackingAdBreak=!1)},n.prototype.trackAdStart=function(){this._logger.info(this._logTag,"#trackAdStart()"),this._canProcess()&&this._startSessionIfNeeded("trackAdStart")&&(this._trigger(E),this._isTrackingAd=!0)},n.prototype.trackAdComplete=function(){this._logger.info(this._logTag,"#trackAdComplete()"),this._canProcess()&&this._startSessionIfNeeded("trackAdComplete")&&(this._trigger(T),this._isTrackingAd=!1)},n.prototype.trackAdSkip=function(){this._logger.info(this._logTag,"#trackAdSkip()"),this._canProcess()&&this._startSessionIfNeeded("trackAdSkip")&&(this._trigger(I),this._isTrackingAd=!1)},n.prototype.trackBitrateChange=function(){this._logger.info(this._logTag,"#trackBitrateChange()"),this._canProcess()&&this._startSessionIfNeeded("trackBitrateChange")&&this._trigger(R)},n.prototype.trackVideoPlayerError=function(e){if(this._logger.info(this._logTag,"#trackVideoPlayerError(errorId="+e+")"),this._startSessionIfNeeded("trackVideoPlayerError")){var t={};t[H]=d,t[G]=e,this._trigger(M,t)}},n.prototype.trackApplicationError=function(e){if(this._logger.info(this._logTag,"#trackApplicationError(errorId="+e+")"),this._startSessionIfNeeded("trackApplicationError")){var t={};t[H]=u,t[G]=e,this._trigger(M,t)}},n.prototype._registerCommands=function(){this._pluginManager.comply(this,"handleVideoIdleStart",this._cmdVideoIdleStart),this._pluginManager.comply(this,"handleVideoIdleResume",this._cmdVideoIdleResume)},n.prototype._registerBehaviours=function(){this._pluginManager.registerBehaviour(new i(l,j),this,"handleVideoIdleStart"),this._pluginManager.registerBehaviour(new i(l,V),this,"handleVideoIdleResume",[new a(c,"ad.isInAdBreak","isInAdBreak"),new a(c,"ad.isInAd","isInAd"),new a(c,"chapter.isInChapter","isInChapter")])},n.prototype._setupDataResolver=function(){function n(){return c.video||(c.video=l._delegate.getVideoInfo(),l._logger.info(l._logTag,"Data from delegate > VideoInfo: "+c.video)),c.video}function a(){return c.ad||(c.ad=l._delegate.getAdInfo(),l._logger.info(l._logTag,"Data from delegate > AdInfo: "+c.ad)),c.ad}function i(){return c.pod||(c.pod=l._delegate.getAdBreakInfo(),l._logger.info(l._logTag,"Data from delegate > AdBreakInfo: "+c.pod)),c.pod}function r(){return c.chapter||(c.chapter=l._delegate.getChapterInfo(),l._logger.info(l._logTag,"Data from delegate > ChapterInfo: "+c.chapter)),c.chapter}function s(){return c.qos||(c.qos=l._delegate.getQoSInfo(),l._logger.info(l._logTag,"Data from delegate > QoSInfo: "+c.qos)),c.qos}var o={},c={},l=this;o["video.id"]=function(){var e=n(),t=e?e.id:null;return l._logger.debug(l._logTag,"Resolving video.id: "+t),t},o["video.name"]=function(){var e=n(),t=e?e.name:null;return l._logger.debug(l._logTag,"Resolving video.name: "+t),t},o["video.length"]=function(){var e=n(),t=e?e.length:NaN;return l._logger.debug(l._logTag,"Resolving video.length: "+t),t},o["video.playerName"]=function(){var e=n(),t=e?e.playerName:null;return l._logger.debug(l._logTag,"Resolving video.playerName: "+t),t},o["video.mediaType"]=function(){var e=n(),t=e?e.mediaType:null;return l._logger.debug(l._logTag,"Resolving video.mediaType: "+t),t},o["video.streamType"]=function(){var e=n(),t=e?e.streamType:null;return l._logger.debug(l._logTag,"Resolving video.streamType: "+t),t},o["video.playhead"]=function(){var e=n(),t=e?e.playhead:NaN;return l._logger.debug(l._logTag,"Resolving video.playhead: "+t),t},o["video.resumed"]=function(){var e=n(),t=!!e&&e.resumed;return l._logger.debug(l._logTag,"Resolving video.resumed: "+t),t},o["video.playheadStalled"]=function(){return this._playheadStalled},o["pod.name"]=function(){var e=i(),t=e?e.name:null;return l._logger.debug(l._logTag,"Resolving pod.name: "+t),t},o["pod.playerName"]=function(){var e=i(),t=e?e.playerName:null;return l._logger.debug(l._logTag,"Resolving pod.playerName: "+t),t},o["pod.position"]=function(){var e=i(),t=e?e.position:NaN;return l._logger.debug(l._logTag,"Resolving pod.position: "+t),t},o["pod.startTime"]=function(){var e=i(),t=e?e.startTime:NaN;return l._logger.debug(l._logTag,"Resolving pod.startTime: "+t),t},
o["ad.isInAd"]=function(){var e=null!=a();return l._logger.debug(l._logTag,"Resolving ad.isInAd: "+e),e},o["ad.isInAdBreak"]=function(){var e=null!=i();return l._logger.debug(l._logTag,"Resolving ad.isInAdBreak: "+e),e},o["ad.id"]=function(){var e=a(),t=e?e.id:null;return l._logger.debug(l._logTag,"Resolving ad.id: "+t),t},o["ad.name"]=function(){var e=a(),t=e?e.name:null;return l._logger.debug(l._logTag,"Resolving ad.name: "+t),t},o["ad.length"]=function(){var e=a(),t=e?e.length:NaN;return l._logger.debug(l._logTag,"Resolving ad.length: "+t),t},o["ad.position"]=function(){var e=a(),t=e?e.position:NaN;return l._logger.debug(l._logTag,"Resolving ad.position: "+t),t},o["ad.granularTracking"]=function(){var e=a(),t=!!e&&e.granularTracking;return l._logger.debug(l._logTag,"Resolving ad.granularTracking: "+t),t},o["ad.trackingInterval"]=function(){var e=Y;return l._logger.debug(l._logTag,"Resolving ad.trackingInterval: "+e),e},o["chapter.isInChapter"]=function(){var e=null!=r();return l._logger.debug(l._logTag,"Resolving chapter.isInChapter: "+e),e},o["chapter.name"]=function(){var e=r(),t=e?e.name:null;return l._logger.debug(l._logTag,"Resolving chapter.name: "+t),t},o["chapter.length"]=function(){var e=r(),t=e?e.length:NaN;return l._logger.debug(l._logTag,"Resolving chapter.length: "+t),t},o["chapter.position"]=function(){var e=r(),t=e?e.position:NaN;return l._logger.debug(l._logTag,"Resolving chapter.position: "+t),t},o["chapter.startTime"]=function(){var e=r(),t=e?e.startTime:NaN;return l._logger.debug(l._logTag,"Resolving chapter.startTime: "+t),t},o["qos.bitrate"]=function(){var e=s(),t=e?e.bitrate:NaN;return l._logger.debug(l._logTag,"Resolving qos.bitrate: "+t),t},o["qos.fps"]=function(){var e=s(),t=e?e.fps:NaN;return l._logger.debug(l._logTag,"Resolving qos.fps: "+t),t},o["qos.droppedFrames"]=function(){var e=s(),t=e?e.droppedFrames:NaN;return l._logger.debug(l._logTag,"Resolving qos.droppedFrames: "+t),t},o["qos.startupTime"]=function(){var e=s(),t=e?1e3*e.startupTime:NaN;return l._logger.debug(l._logTag,"Resolving qos.startupTime: "+t),t},this._dataResolver=function(e){if(!e||0==e.length)return null;c={};for(var t=null,n=0;n Tracking session auto-start."),this.trackSessionStart()),!0):(this._logger.warn(this._logTag,"#"+e+"() > No active tracking session."),!1)},n.prototype._allowPlayerStateChange=function(){return!(this._isTrackingAdBreak&&!this._isTrackingAd&&(this._logger.info(this._logTag,"_allowPlayerStateChange Player plugin does not allow player state changes when in Adbreak and not in Ad."),1))};var o="player",c=o,l="adobe-heartbeat",u="sourceErrorExternal",d="sourceErrorSDK",g="video_load",f="video_unload",p="video_session_end",b="video_start",m="video_resume",_="video_complete",h="video_skip",y="timed_metadata",S="play",v="pause",A="content_start",P="adbreak_start",k="adbreak_complete",E="ad_start",T="ad_complete",I="ad_skip",C="buffer_start",D="buffer_complete",N="seek_start",w="seek_complete",O="chapter_start",L="chapter_complete",B="chapter_skip",R="bitrate_change",M="track_error",j="video_idle_start",V="video_idle_resume",F="video_begin_reporting",x="callback",U="filter_report",H="source",G="error_id",K=1001,Y=1,q=2;t.VideoPlayerPlugin=n}(e.ADB.core,t),e.ADB.va.plugins.videoplayer||(e.ADB.va.plugins.videoplayer=t)}(this),function(e){if(void 0===t)var t={};t.clock||(t.clock={}),t.context||(t.context={}),t.filter||(t.filter={}),t.model||(t.model={}),t.network||(t.network={}),function(e,t){"use strict";function a(e,t,n,a,i){if(!t)throw new Error("Reference to the channel object cannot be NULL");if(this._channel=t,!e)throw new Error("Reference to the pluginManager object cannot be NULL");if(this._pluginManager=e,!i)throw new Error("Reference to the logger object cannot be NULL");this._logTag="ah::Timer."+n,this._logger=i,this._isDestroyed=!1,this._createTimer(n,a),this._installHandlers()}var n=e.Event;a.KEY_NAME="name",a.KEY_INTERVAL="interval",a.KEY_RESET="reset",a.prototype.resume=function(e){this._logger.debug(this._logTag,"Starting timer: "+this._name);var t={};t[a.KEY_NAME]=i+"."+this._name,t[a.KEY_RESET]=e,this._pluginManager.command(r,c,t)},a.prototype.pause=function(e){this._logger.debug(this._logTag,"Stopping timer: "+this._name);var t={};t[a.KEY_NAME]=i+"."+this._name,t[a.KEY_RESET]=e,this._pluginManager.command(r,o,t)},a.prototype.destroy=function(){if(!this._isDestroyed){this._isDestroyed=!0,this._uninstallHandlers();var e={};e[a.KEY_NAME]=i+"."+this._name,this._pluginManager.command(r,l,e)}},a.prototype.setInterval=function(e){var t=u+"."+i+"."+this._name,n=this._pluginManager.request(r,[t])[t];this.pause(!0),this._createTimer(this._name,e),n||this.resume(!0)},a.prototype._cmdResume=function(e){var t=!1;null!=e&&e.hasOwnProperty(a.KEY_RESET)&&(t=e[a.KEY_RESET]),this.resume(t)},a.prototype._cmdPause=function(e){var t=!1;null!=e&&e.hasOwnProperty(a.KEY_RESET)&&(t=e[a.KEY_RESET]),this.pause(t)},a.prototype._onTick=function(e,t){this._channel.trigger(new n("clock:"+this._name+".tick",t))},a.prototype._installHandlers=function(){this._channel.comply("clock:"+this._name+".resume",this._cmdResume,this),this._channel.comply("clock:"+this._name+".pause",this._cmdPause,this),this._pluginManager.on(r,i+"."+this._name+".tick",this._onTick,this)},a.prototype._uninstallHandlers=function(){this._channel.off(null,null,this),this._pluginManager.off(null,null,null,this)},a.prototype._createTimer=function(e,t){this._name=e,this._interval=t;var n={};n[a.KEY_NAME]=i+"."+this._name,n[a.KEY_INTERVAL]=this._interval,this._pluginManager.command(r,s,n)};var i="heartbeat",r="service.clock",s="create",o="pause",c="resume",l="destroy",u="is_paused";t.clock.Timer=a}(e.ADB.core,t),function(e,t){"use strict";function a(e,t,n){a.__super__.constructor.call(this,e,t,r,o,n)}var n=e.Event,i=t.clock.Timer;e.extend(a,i),a.prototype._onCheckStatusComplete=function(e){var t=e.data[d];if(this._logger.debug(this._logTag,"#_onCheckStatusComplete(interval="+t+")"),t){if(t==this._interval)return void this._logger.debug(this._logTag,"#_onCheckStatusComplete() > Interval value not changed.");s Interval value too large: "+t),this.setInterval(s)):(this._logger.debug(this._logTag,"#_onCheckStatusComplete() > Interval changed to: "+t),this.setInterval(t))}else this._logger.warn(this._logTag,"#_onCheckStatusComplete() > Invalid interval value."),this.setInterval(o)},a.prototype._getSettings=function(){this._logger.debug(this._logTag,"#_getSettings()"),this._channel.trigger(new n(c))},a.prototype._installHandlers=function(){a.__super__._installHandlers.call(this),this._channel.on(l,this._getSettings,this),this._channel.on(u,this._onCheckStatusComplete,this),this._channel.reply(d,function(){return this._interval},this)};var r="check_status",s=600,o=180,c="clock:check_status.tick",l="clock:check_status.get_settings",u="net:check_status_complete",d="check_status_interval";t.clock.CheckStatusTimer=a}(e.ADB.core,t),function(e,t){"use strict";function a(e,t,n){a.__super__.constructor.call(this,e,t,i,r,n),this._doNotOverrideInterval=!1}var n=t.clock.Timer;e.extend(a,n),a.prototype._onCheckStatusComplete=function(e){var t=e.data[s];if(this._logger.debug(this._logTag,"#_onCheckStatusComplete(interval="+t+")"),this._doNotOverrideInterval)this._logger.debug(this._logTag,"#_onCheckStatusComplete() > Interval value not changed. (doNotOverrideInterval = true)");else if(t){if(t==this._interval)return void this._logger.debug(this._logTag,"#_onCheckStatusComplete() > Interval value not changed.");this._logger.debug(this._logTag,"#_onCheckStatusComplete() > Interval changed to: "+t),this.setInterval(t)}else this._logger.warn(this._logTag,"#_onCheckStatusComplete() > Invalid interval value."),this.setInterval(r)},a.prototype._onUpdateReportingInterval=function(e){var t=e.data[s];if(this._doNotOverrideInterval=!!e.data[o],this._logger.debug(this._logTag,"#_onUpdateReportingInterval(interval="+t+", doNotOverrideInterval="+this._doNotOverrideInterval+")"),t){if(t==this._interval)return void this._logger.debug(this._logTag,"#_onUpdateReportingInterval() > Interval value not changed.");this._logger.debug(this._logTag,"#_onUpdateReportingInterval() > Interval changed to: "+t),this.setInterval(t)}else this._logger.warn(this._logTag,"#_onUpdateReportingInterval() > Invalid interval value."),this.setInterval(r)},a.prototype._installHandlers=function(){a.__super__._installHandlers.call(this),this._channel.on(l,this._onCheckStatusComplete,this),this._channel.on(c,this._onUpdateReportingInterval,this),this._channel.reply(s,function(){return this._interval},this)};var i="reporting",r=10,s="reporting_interval",o="do_not_override_interval",c="reporting:update_interval",l="net:check_status_complete";t.clock.ReportingTimer=a}(e.ADB.core,t),function(e,t){"use strict";function a(e,t,n){a.__super__.constructor.call(this,e,t,i,r,n)}var n=t.clock.Timer;e.extend(a,n);var i="idle",r=1800;t.clock.IdleTimer=a}(e.ADB.core,t),function(e,t){"use strict";function a(e,t,n){a.__super__.constructor.call(this,e,t,i,r,n)}var n=t.clock.Timer;e.extend(a,n);var i="flush_filter",r=.25;t.clock.FlushFilterTimer=a}(e.ADB.core,t),function(e,t){"use strict";function n(e,t,n){if(!e)throw new Error("Reference to the pluginManager object cannot be NULL");if(!t)throw new Error("Reference to the channel object cannot be NULL");if(!n)throw new Error("Reference to the logger object cannot be NULL");this._isDestroyed=!1,this._reportingTimer=new r(e,t,n),this._checkStatusTimer=new a(e,t,n),this._flushFilterTimer=new i(e,t,n),this._idleTimer=new s(e,t,n)}var a=t.clock.CheckStatusTimer,i=t.clock.FlushFilterTimer,r=t.clock.ReportingTimer,s=t.clock.IdleTimer;n.prototype.destroy=function(){this._isDestroyed||(this._isDestroyed=!0,this._reportingTimer.destroy(),this._checkStatusTimer.destroy(),this._flushFilterTimer.destroy(),this._idleTimer.destroy())},t.clock.Clock=n}(e.ADB.core,t),function(e,t){"use strict";function a(e,t){this.value=e,this.hint=t}function n(e){this.realm=e,this.data={}}a.HINT_SHORT="short",n.prototype.setField=function(e,t,n){this.data[e]=new a(t,n)},n.prototype._createAccessor=function(t,n,a){var i=this;return function(e){return arguments.length&&(i[t]=e,i.setField(n,arguments[0],a)),i[t]}},t.model.Dao=n,t.model.DaoField=a}(e.ADB.core,t),function(e,t){"use strict";function n(e){if(n.__super__.constructor.call(this,"asset"),this.adId=this._createAccessor("_adId","ad_id",null),this.sid=this._createAccessor("_sid","ad_sid",null),this.resolver=this._createAccessor("_resolver","resolver",null),this.podId=this._createAccessor("_podId","pod_id",null),this.podPosition=this._createAccessor("_podPosition","pod_position",null),this.podOffset=this._createAccessor("_podOffset","pod_offset",null),this.podName=this._createAccessor("_podName","pod_name",null),this.adLength=this._createAccessor("_adLength","ad_length",null),this.adName=this._createAccessor("_adName","ad_name",null),arguments.length&&e instanceof n){var t=arguments[0];this.adId(t.adId()),this.sid(t.sid()),this.resolver(t.resolver()),this.podId(t.podId()),this.podPosition(t.podPosition()),this.podOffset(t.podOffset()),this.podName(t.podName()),this.adLength(t.adLength()),this.adName(t.adName())}else this.adId(""),this.sid(""),this.resolver(""),this.podId(""),this.podPosition(""),this.podOffset(0),this.podName(""),this.adLength(0),this.adName("")}var a=t.model.Dao;e.extend(n,a),t.model.AdDao=n}(e.ADB.core,t),function(e,t){"use strict";function n(e){if(n.__super__.constructor.call(this,"sc"),this.reportSuiteId=this._createAccessor("_reportSuiteId","rsid",null),this.trackingServer=this._createAccessor("_trackingServer","tracking_server",null),this.ssl=this._createAccessor("_ssl","ssl",i.HINT_SHORT),arguments.length&&e instanceof n){var t=arguments[0];this.reportSuiteId(t.reportSuiteId()),this.trackingServer(t.trackingServer()),this.ssl(t.ssl())}else this.reportSuiteId(""),this.trackingServer(""),this.ssl(0)}var a=t.model.Dao,i=t.model.DaoField;e.extend(n,a),t.model.AdobeAnalyticsDao=n}(e.ADB.core,t),function(e,t){"use strict";function n(e){if(n.__super__.constructor.call(this,"stream"),this.id=this._createAccessor("_id","chapter_id",null),this.sid=this._createAccessor("_sid","chapter_sid",null),this.name=this._createAccessor("_name","chapter_name",null),this.position=this._createAccessor("_position","chapter_pos",null),this.length=this._createAccessor("_length","chapter_length",null),this.offset=this._createAccessor("_offset","chapter_offset",null),arguments.length&&e instanceof n){var t=arguments[0];this.id(t.id()),this.sid(t.sid()),this.name(t.name()),this.position(t.position()),this.length(t.length()),this.offset(t.offset())}else this.id(""),this.sid(""),this.name(""),this.position(0),this.length(0),this.offset(0)}var a=t.model.Dao;e.extend(n,a),t.model.ChapterDao=n}(e.ADB.core,t),function(e,t){"use strict";function i(e){if(i.__super__.constructor.call(this,"asset"),this.type=this._createAccessor("_type","type",null),this.videoId=this._createAccessor("_videoId","video_id",null),this.publisher=this._createAccessor("_publisher","publisher",null),this.adData=this._createAccessor("_adData","ad_data",null),this.chapterData=this._createAccessor("_chapterData","chapter_data",null),this.length=this._createAccessor("_length","length",null),this.name=this._createAccessor("_name","name",null),arguments.length&&e instanceof i){var t=arguments[0];this.type(t.type()),this.name(t.name()),this.videoId(t.videoId()),this.publisher(t.publisher()),this.length(t.length());var n=t.adData()?new r(t.adData()):null;this.adData(n);var a=t.chapterData()?new s(t.chapterData()):null;this.chapterData(a)}else this.type(""),this.name(""),this.videoId(""),this.publisher(""),this.length(0),this.adData(null),this.chapterData(null)}var n=t.model.Dao,r=t.model.AdDao,s=t.model.ChapterDao;e.extend(i,n),i.TYPE_AD="ad",i.TYPE_MAIN_CONTENT="main",t.model.AssetDao=i}(e.ADB.core,t),function(e,t){"use strict";function n(e){if(n.__super__.constructor.call(this,"event"),this.type=this._createAccessor("_type","type",null),this.duration=this._createAccessor("_duration","duration",null),this.playhead=this._createAccessor("_playhead","playhead",null),this.id=this._createAccessor("_id","id",null),this.source=this._createAccessor("_source","source",null),this.ts=this._createAccessor("_ts","ts",null),this.prevTs=this._createAccessor("_prevTs","prev_ts",null),arguments.length&&e instanceof n){var t=arguments[0];this.type(t.type()),this.duration(t.duration()),this.playhead(t.playhead()),this.id(t.id()),this.source(t.source()),this.ts(t.ts()),this.prevTs(t.prevTs())}else this.type(""),this.duration(0),this.playhead(0),this.id(""),this.source(""),this.ts(0),this.prevTs(-1)}var a=t.model.Dao;e.extend(n,a),n.EVENT_TYPE_AA_START="aa_start",n.EVENT_TYPE_AA_AD_START="aa_ad_start",n.EVENT_TYPE_START="start",n.EVENT_TYPE_RESUME="resume",n.EVENT_TYPE_CHAPTER_START="chapter_start",n.EVENT_TYPE_CHAPTER_COMPLETE="chapter_complete",n.EVENT_TYPE_CHAPTER_SKIP="chapter_skip",n.EVENT_TYPE_PLAY="play",n.EVENT_TYPE_PAUSE="pause",n.EVENT_TYPE_STALL="stall",n.EVENT_TYPE_BUFFER="buffer",n.EVENT_TYPE_BITRATE_CHANGE="bitrate_change",n.EVENT_TYPE_ERROR="error",n.EVENT_TYPE_COMPLETE="complete",n.EVENT_TYPE_SKIP="skip",n.EVENT_TYPE_END="end",t.model.EventDao=n}(e.ADB.core,t),function(e,t){"use strict";function n(e){if(n.__super__.constructor.call(this,"stream"),this.bitrate=this._createAccessor("_bitrate","bitrate",null),this.fps=this._createAccessor("_fps","fps",null),this.droppedFrames=this._createAccessor("_droppedFrames","dropped_frames",null),this.startupTime=this._createAccessor("_startup_time","startup_time",null),arguments.length&&e instanceof n){var t=arguments[0];this.bitrate(t.bitrate()),this.fps(t.fps()),this.droppedFrames(t.droppedFrames()),this.startupTime(t.startupTime()),this.isStartupTimeOverridden=t.isStartupTimeOverridden}else this.bitrate(0),this.fps(0),this.droppedFrames(0),this.startupTime(0),this.isStartupTimeOverridden=!1}var a=t.model.Dao;e.extend(n,a),t.model.QoSDao=n}(e.ADB.core,t),function(e,t){"use strict";function n(e){if(n.__super__.constructor.call(this,"sp"),this.ovp=this._createAccessor("_ovp","ovp",null),this.sdk=this._createAccessor("_sdk","sdk",null),this.channel=this._createAccessor("_channel","channel",null),this.playerName=this._createAccessor("_playerName","player_name",null),this.libVersion=this._createAccessor("_libVersion","hb_version",null),this.apiLevel=this._createAccessor("_apiLevel","hb_api_lvl",null),arguments.length&&e instanceof n){var t=arguments[0];this.ovp(t.ovp()),this.sdk(t.sdk()),this.channel(t.channel()),this.playerName(t.playerName()),this.libVersion(t.libVersion()),this.apiLevel(t.apiLevel())}else this.ovp(i),this.sdk(i),this.channel(i),this.playerName(""),this.libVersion(""),this.apiLevel(0)}var a=t.model.Dao;e.extend(n,a);var i="unknown";t.model.ServiceProviderDao=n}(e.ADB.core,t),function(e,t){"use strict";function n(e){if(n.__super__.constructor.call(this,"event"),this.sessionId=this._createAccessor("_sessionId","sid",null),arguments.length&&e instanceof n){var t=arguments[0];this.sessionId(t.sessionId())}else this.sessionId(null)}var a=t.model.Dao;e.extend(n,a),t.model.SessionDao=n}(e.ADB.core,t),function(e,t){"use strict";function n(e){if(n.__super__.constructor.call(this,"stream"),this.type=this._createAccessor("_type","type",null),arguments.length&&e instanceof n){var t=arguments[0];this.type(t.type())}else this.type(null)}var a=t.model.Dao;e.extend(n,a),t.model.StreamDao=n}(e.ADB.core,t),function(e,t){"use strict";function n(e){if(n.__super__.constructor.call(this,"user"),this.analyticsVisitorId=this._createAccessor("_analyticsVisitorId","aid",null),this.marketingCloudVisitorId=this._createAccessor("_marketingCloudVisitorId","mid",null),this.visitorId=this._createAccessor("_visitorId","id",null),arguments.length&&e instanceof n){var t=arguments[0];this.analyticsVisitorId(t.analyticsVisitorId()),this.marketingCloudVisitorId(t.marketingCloudVisitorId()),this.visitorId(t.visitorId())}else this.analyticsVisitorId(null),this.marketingCloudVisitorId(null),this.visitorId(null)}var a=t.model.Dao;e.extend(n,a),t.model.UserDao=n}(e.ADB.core,t),function(e,t){"use strict";function n(e){if(n.__super__.constructor.call(this,"aam"),this.audienceManagerBlob=this._createAccessor("_audienceManagerBlob","blob",null),this.audienceManagerLocationHint=this._createAccessor("_audienceManagerLocationHint","loc_hint",null),arguments.length&&e instanceof n){var t=arguments[0];this.audienceManagerBlob(t.audienceManagerBlob()),this.audienceManagerLocationHint(t.audienceManagerLocationHint())}else this.audienceManagerBlob(null),this.audienceManagerLocationHint(null)}var a=t.model.Dao;e.extend(n,a),t.model.AudienceManagerDao=n}(e.ADB.core,t),function(e,t){"use strict";function n(e,t,n,a,i){this.eventData=new s,this.eventData.type(t),this.eventData.duration(0),this.eventData.ts((new Date).getTime()),this.eventData.playhead(n),this.assetData=new o(e._assetData),this.streamData=new c(e._streamData),this.qosData=new l(e._qosData),this.cuserData=r.clone(e._cuserData),this.meta=a,this.callback=i,this.filterReport=!0}var r=e.ObjectUtils,s=t.model.EventDao,o=t.model.AssetDao,c=t.model.StreamDao,l=t.model.QoSDao;t.model.TrackItem=n}(e.ADB.va.utils,t),function(e,t){"use strict";function n(e,t,n,a,i,r){this.adobeAnalyticsData=e,this.userData=t,this.aamData=n,this.serviceProviderData=a,this.sessionData=i,this.eventData=new o(r.eventData),this.assetData=new c(r.assetData),this.streamData=new l(r.streamData),this.qosData=new u(r.qosData),this.cuserData=s.clone(r.cuserData),this.meta=s.clone(r.meta),this.callback=r.callback,this.filterReport=r.filterReport}var s=e.ObjectUtils,o=t.model.EventDao,c=t.model.AssetDao,l=t.model.StreamDao,u=t.model.QoSDao;t.model.CUserDao,t.model.Report=n}(e.ADB.va.utils,t),function(e){"use strict";function t(){}t.prototype.serializeReport=function(){},t.prototype.serializeDao=function(){},t.prototype.serializeMap=function(){},t.prototype.serializeNumber=function(){},t.prototype.serializeString=function(){},e.model.ISerializer=t}(t),function(e,t){"use strict";function n(e){if(!e)throw new Error("Reference to the logger object cannot be NULL");this._logger=e}var c=t.model.Dao,r=t.model.DaoField,a=t.model.ISerializer;e.extend(n,a),n.prototype.serializeReport=function(e){var t=[];return t.push(this.serializeDao(e.adobeAnalyticsData)),t.push(this.serializeDao(e.userData)),t.push(this.serializeDao(e.aamData)),t.push(this.serializeMap(e.cuserData,"cuser")),t.push(this.serializeDao(e.serviceProviderData)),t.push(this.serializeDao(e.sessionData)),t.push(this.serializeDao(e.eventData)),t.push(this.serializeDao(e.assetData)),t.push(this.serializeDao(e.streamData)),t.push(this.serializeDao(e.qosData)),t.push(this.serializeMap(e.meta,"meta")),{serializedOutput:t.filter(function(e){return!!e}).join("&"),callback:e.callback}},n.prototype.serializeDao=function(e){return this._processDao(e).filter(function(e){return!!e}).join("&")},n.prototype.serializeMap=function(e,t){var n=[],a=t||"meta";for(var i in e)e.hasOwnProperty(i)&&e[i]&&n.push("s:"+a+":"+i+"="+window.encodeURIComponent(e[i]));return n.join("&")},n.prototype.serializeNumber=function(e,t,n,a){var i=s;return null==t||isNaN(t)?null:(a===r.HINT_SHORT&&(i=o),i+":"+n+":"+e+"="+Math.floor(t))},n.prototype.serializeString=function(e,t,n){return t?i+":"+n+":"+e+"="+window.encodeURIComponent(t):null},n.prototype._processDao=function(e){var t=[];for(var n in e.data)if(e.data.hasOwnProperty(n)){var a=e.data[n],i=a.value,r=a.hint,s=null,o=e.realm;if(null==i)continue;"number"==typeof i?s=this.serializeNumber(n,i,o,r):"string"==typeof i?s=this.serializeString(n,i,o,r):i instanceof c?s=this.serializeDao(i):this._logger.warn(l,"#_processDao() > Unable to serialize DAO. Field: "+n+". Value: "+i+"."),s&&t.push(s)}return t};var l="ah::QuerystringSerializer",s="l",o="h",i="s";t.model.QuerystringSerializer=n}(e.ADB.core,t),function(e,t){"use strict";function n(e,t){if(!e)throw new Error("Reference to the data object cannot be NULL");if(this._data=e,!t)throw new Error("Reference to the logger object cannot be NULL");this._logger=t}n.prototype.parse=function(){var e,t,n,a,i,r,s;window.DOMParser?r=(new window.DOMParser).parseFromString(this._data,"text/xml"):((r=new window.ActiveXObject("Microsoft.XMLDOM")).async=!1,r.loadXML(this._data)),(s=parseInt(r.getElementsByTagName("trackingInterval")[0].childNodes[0].nodeValue,10))&&(e=s),(s=parseInt(r.getElementsByTagName("setupCheckInterval")[0].childNodes[0].nodeValue,10))&&(t=s),(s=parseInt(r.getElementsByTagName("trackExternalErrors")[0].childNodes[0].nodeValue,10))&&(n=1==s),r.getElementsByTagName("trackingDisabled")[0]&&(a=1==(s=parseInt(r.getElementsByTagName("trackingDisabled")[0].childNodes[0].nodeValue,10))),i=!r.getElementsByTagName("nielsenEnabled")[0]||1==(s=parseInt(r.getElementsByTagName("nielsenEnabled")[0].childNodes[0].nodeValue,10));var o={};return o[l]=e,o[u]=t,o[d]=n,o[f]=a,o[g]=i,this._logger.debug(c,"#parse() > Obtained configuration settings."),o};var c="ah::SettingsParser",l="reporting_interval",u="check_status_interval",d="track_external_errors",g="nielsen_enabled",f="tracking_disabled";t.network.SettingsParser=n}(e.ADB.core,t),function(e,t){"use strict";function n(e,t){if(this._trackingServer=null,this._checkStatusServer=null,this._publisher=null,this._isConfigured=!1,this._isDestroyed=!1,this._beginReporting=!1,this._sendingRequest=!1,this._requestsQueue=[],this._quietMode=!1,this._prevReportSent=null,!e)throw new Error("Reference to the channel object cannot be NULL");if(this._channel=e,!t)throw new Error("Reference to the logger object cannot be NULL");this._logger=t,this._serializer=new a(t),this._installEventListeners()}var o=e.Event,c=e.URLRequestMethod,l=e.URLRequest,u=e.URLLoader,d=t.network.SettingsParser,a=t.model.QuerystringSerializer;n.prototype.destroy=function(){this._isDestroyed||(this._isDestroyed=!0,this._logger.debug(g,"#destroy()"),this._uninstallEventListeners())},n.prototype._onApiConfig=function(e){var t=e.data;this._logger.debug(g,"#_onApiConfig(sb_server="+t[i]+", check_status_server="+t[r]+", publisher="+t[s]+", quiet_mode="+t[f]+", ssl="+t[p]+")"),this._trackingServer=this._updateRequestProtocol(t[i],t[p]),this._checkStatusServer=this._updateRequestProtocol(t[r],t[p]),this._publisher=t[s],this._quietMode=t[f],this._isConfigured=!0},n.prototype._onBeginReporting=function(){this._logger.debug(g,"#_onBeginReporting()"),this._beginReporting=!0,this._sendNextRequest(),this._onClockCheckStatusTick()},n.prototype._onFilterReportAvailable=function(e){var t=e.data;if(this._isConfigured){var n=t[b];if(this._prevReportSent&&this._prevReportSent.eventData&&n.eventData&&this._prevReportSent.eventData.playhead==n.eventData.playhead&&this._prevReportSent.eventData.ts==n.eventData.ts&&this._prevReportSent.eventData.prevTs==n.eventData.prevTs&&this._prevReportSent.eventData.type==n.eventData.type)this._logger.debug(g,"#_onFilterReportAvailable() > Duplicate heartbeat report not sent for URL:\n"+i);else{this._prevReportSent=n;var a=this._serializer.serializeReport(n),i=this._trackingServer+"/?"+a.serializedOutput;this._processRequest(i,a.callback)}}else this._logger.warn(g,"#_onFilterReportAvailable() > Unable to send request: not configured.")},n.prototype._processRequest=function(e,t){this._requestsQueue.push({url:e,callback:t}),this._sendNextRequest()},n.prototype._sendNextRequest=function(){if(this._beginReporting)if(this._sendingRequest)this._logger.debug(g,"#_sendNextRequest() > Exiting as we are currently sending a request.");else{var e=this._requestsQueue.shift();if(e){this._sendingRequest=!0,this._logger.debug(g,"#_sendNextRequest() > "+e.url);var t=this,n=new u,a=function(){n.close(),e.callback&&e.callback.call(null),t._sendingRequest=!1,t._sendNextRequest()},i=function(){a()},r=function(){t._logger.warn(g,"#_onFilterReportAvailable() > Failed to send heartbeat report."),a()};if(!this._quietMode){n.addEventListener(o.SUCCESS,i,this),n.addEventListener(o.ERROR,r,this);var s=new l(e.url,c.GET);n.load(s)}}else this._logger.debug(g,"#_sendNextRequest() > Exiting as we have no requests to send.")}else this._logger.debug(g,"#_sendNextRequest() > Exiting as we have not started reporting.")},n.prototype._onClockCheckStatusTick=function(){function e(e){if(e.data){var t=new d(e.data.response,n._logger).parse();t?n._channel.trigger(new o(S,t)):n._logger.warn(g,"#_onClockCheckStatusTick() > Failed to parse the config. settings.")}s.close()}function t(){n._logger.warn(g,"#_onClockCheckStatusTick() > Failed to obtain the config. settings."),s.close()}if(this._isConfigured)if(this._publisher)if(this._beginReporting){var n=this,a=this._publisher.replace(/[^a-zA-Z0-9]+/,"-").toLocaleLowerCase(),i=this._checkStatusServer+a+".xml?r="+(new Date).getTime(),r=new l(i,c.GET),s=new u;s.addEventListener(o.SUCCESS,e,this),s.addEventListener(o.ERROR,t,this),this._logger.debug(g,"#_onClockCheckStatusTick() > Get new settings from: "+i),s.load(r)}else this._logger.debug(g,"#_onClockCheckStatusTick() > Exiting as we have not started reporting.");else this._logger.warn(g,"#_onClockCheckStatusTick() > Publisher is NULL.");else this._logger.warn(g,"#_onClockCheckStatusTick() > Unable to send request: not configured.")},n.prototype._updateRequestProtocol=function(e,t){var n=e;return 0===n.indexOf("http://")?n=n.slice(7):0===n.indexOf("https://")&&(n=n.slice(8)),t?"https://"+n:"http://"+n},n.prototype._installEventListeners=function(){this._channel.on(m,this._onApiConfig,this),this._channel.on(_,this._onBeginReporting,this),this._channel.on(h,this._onFilterReportAvailable,this),this._channel.on(y,this._onClockCheckStatusTick,this)},n.prototype._uninstallEventListeners=function(){this._channel.off(null,null,this)};var g="ah::Network",i="tracking_server",r="check_status_server",s="publisher",f="quiet_mode",p="ssl",b="report",m="api:config",_="api:video_begin_reporting",h="filter:data_available",y="clock:check_status.tick",S="net:check_status_complete";t.network.Network=n}(e.ADB.core,t),function(e,t){"use strict";function n(e,t){if(!e)throw new Error("Reference to the channel object cannot be NULL");if(this._channel=e,!t)throw new Error("Reference to the logger object cannot be NULL");this._logger=t,this._isDestroyed=!1,this._isBufferingInProgress=!1,this._reportBuffer={},this._tsHistory={},this._workQueue=new r,this._installEventListeners()}function l(e){var t=[];return e&&e.forEach(function(e){e.eventData.type()==s.EVENT_TYPE_PAUSE||e.eventData.type()==s.EVENT_TYPE_STALL||e.eventData.type()==s.EVENT_TYPE_BUFFER?(!e.filterReport||e.eventData.duration()>S)&&t.push(e):t.push(e)}),t}function u(e){var t=-1,n=-1,a=[];return e.forEach(function(e){e.eventData.type()==s.EVENT_TYPE_START?e.assetData.type()==f.TYPE_MAIN_CONTENT?-1==t?t=a.push(e)-1:(e.eventData.prevTs(-1),a[t]=e):-1==n?n=a.push(e)-1:(e.eventData.prevTs(-1),a[n]=e):a.push(e)}),a}function d(n){var a=[];return n.forEach(function(e){if(e.eventData.type()==s.EVENT_TYPE_PLAY){if(e.eventData.duration()>y)a.push(e);else if(0==e.eventData.duration()&&e.assetData.type()==f.TYPE_MAIN_CONTENT){var t=i(n);t.indexOf(e)==t.length-1&&a.push(e)}}else a.push(e)}),a}function i(e){var t=[];return e.forEach(function(e){e.eventData.type()!=s.EVENT_TYPE_PLAY&&e.eventData.type()!=s.EVENT_TYPE_BUFFER&&e.eventData.type()!=s.EVENT_TYPE_START||t.push(e)}),t}var a=e.radio.Command,r=e.radio.CommandQueue,g=e.Event,s=t.model.EventDao,f=t.model.AssetDao;n.prototype.destroy=function(){this._isDestroyed||(this._isDestroyed=!0,this._logger.debug(A,"#destroy()"),this._uninstallEventListeners(),this.clear())},n.prototype.clear=function(){this._logger.debug(A,"#clear()"),this._workQueue.cancelAllCommands(),this._reportBuffer={},this._tsHistory={},this._isBufferingInProgress=!1},n.prototype.flush=function(){this._workQueue.addCommand(new a(this._flushBufferReport,this))},n.prototype._bufferReport=function(e){if(!this._isDestroyed){var t=e[m];if(t){var n=t.sessionData.sessionId();this._reportBuffer[n]=this._reportBuffer[n]||[],this._reportBuffer[n].push(t)}if(!this._isBufferingInProgress){this._isBufferingInProgress=!0;var a={};a[b]=!0,a[_]=1,this._channel.command(h,a)}}},n.prototype._flushBufferReport=function(){function e(e){if(e)for(var t=0;t No active tracking session.")},i.prototype._onApiVideoStart=function(e){var t=e.data;if(this._logger.debug(A,"#_onApiVideoStart(id="+t.videoId+", name="+t.videoName+", length="+t.videoLength+", type="+t.streamType+", playerName="+t.playerName+")"),this._checkCall("_onApiVideoStart")&&this._inputDataValidator.validateFields(t,["videoId","streamType","videoLength","playhead","playerName"])){this._lastInBandItem=null,this._stashedLastInBandItem=null,this._adobeAnalyticsData.reportSuiteId(t.rsid),this._adobeAnalyticsData.trackingServer(t.trackingServer),this._adobeAnalyticsData.ssl(Number(t.useSsl)),this._serviceProviderData.ovp(t.ovp),this._serviceProviderData.sdk(t.sdk),this._serviceProviderData.channel(t.channel),this._serviceProviderData.libVersion(t.version),this._serviceProviderData.apiLevel(t.apiLvl),this._serviceProviderData.playerName(t.playerName),this._assetData.adData(null),this._assetData.chapterData(null),this._assetData.videoId(t.videoId),this._assetData.length(t.videoLength),this._assetData.type(p.TYPE_MAIN_CONTENT),this._assetData.publisher(t.publisher),this._assetData.name(t.videoName),this._streamData.type(t.streamType),this._updateQoSInfo(t);var n=t.metaNielsen?o.merge(t.metaVideo,t.metaNielsen):t.metaVideo,a=new y(this,f.EVENT_TYPE_START,t.playhead,n,t._eventData[N]);this._sendHit(a)}},i.prototype._onApiVideoResume=function(e){var t=e.data;if(this._logger.debug(A,"#_onApiVideoResume(id="+t.videoId+", name="+t.videoName+", length="+t.videoLength+", type="+t.streamType+", playerName="+t.playerName+")"),this._checkCall("_onApiVideoResume")&&this._inputDataValidator.validateFields(t,["videoId","streamType","videoLength","playhead","playerName"])){this._assetData.videoId(t.videoId),this._assetData.length(t.videoLength),this._assetData.type(p.TYPE_MAIN_CONTENT),this._assetData.name(t.videoName),this._streamData.type(t.streamType);var n=new y(this,f.EVENT_TYPE_RESUME,t.playhead,null,t._eventData[N]);this._sendHit(n)}},i.prototype._onApiVideoSessionEnd=function(e){this._logger.debug(A,"#_onApiVideoSessionEnd()");var t=e.data;if(this._checkCall("_onApiVideoSessionEnd")&&this._inputDataValidator.validateFields(t,["playhead"])){var n=new y(this,f.EVENT_TYPE_END,t.playhead,null,t._eventData[N]);n.assetData.adData(null),n.assetData.type(p.TYPE_MAIN_CONTENT),this._sendHit(n)}},i.prototype._onApiVideoComplete=function(e){this._logger.debug(A,"#_onApiVideoComplete()");var t=e.data;if(this._checkCall("_onApiVideoComplete")){var n=new y(this,f.EVENT_TYPE_COMPLETE,this._assetData.length(),null,t._eventData[N]);this._sendHit(n),this._isVideoComplete=!0}},i.prototype._onApiVideoSkip=function(e){this._logger.debug(A,"#_onApiVideoSkip()");var t=e.data;if(this._checkCall("_onApiVideoSkip")){var n=new y(this,f.EVENT_TYPE_SKIP,t.playhead,null,t._eventData[N]);this._sendHit(n),this._isVideoComplete=!0}},i.prototype._onApiPlay=function(e){this._logger.debug(A,"#_onApiPlay()");var t=e.data;if(this._checkCall("_onApiPlay")&&this._inputDataValidator.validateFields(t,["playhead"])){this._updateQoSInfo(t);var n=new y(this,f.EVENT_TYPE_PLAY,t.playhead,null,t._eventData[N]);this._sendHit(n)}},i.prototype._onApiPause=function(e){this._logger.debug(A,"#_onApiPause()");var t=e.data;if(this._checkCall("_onApiPause")&&this._inputDataValidator.validateFields(t,["playhead"])){this._updateQoSInfo(t);var n=t.playheadStalled?f.EVENT_TYPE_STALL:f.EVENT_TYPE_PAUSE,a=new y(this,n,t.playhead,null,t._eventData[N]);t._eventData.hasOwnProperty(w)&&(a.filterReport=t._eventData[w]),this._sendHit(a)}},i.prototype._onApiBufferStart=function(e){this._logger.debug(A,"#_onApiBufferStart()");var t=e.data;if(this._checkCall("_onApiBufferStart")&&this._inputDataValidator.validateFields(t,["playhead"])){this._updateQoSInfo(t);var n=new y(this,f.EVENT_TYPE_BUFFER,t.playhead,null,t._eventData[N]);this._sendHit(n)}},i.prototype._onApiAdBreakStart=function(e){this._logger.debug(A,"#_onApiAdBreakStart()");var t=e.data;this._checkCall("_onApiAdBreakStart")&&this._inputDataValidator.validateFields(t,["playhead"])&&(this._flushLastInbandItem(t),this._updateLastInbandItemToBuffering())},i.prototype._onApiAdBreakComplete=function(e){this._logger.debug(A,"#_onApiAdBreakComplete()");var t=e.data;this._checkCall("_onApiAdBreakComplete")&&this._inputDataValidator.validateFields(t,["playhead"])&&(this._flushLastInbandItem(t),this._restoreLastInbandItem())},i.prototype._onApiAdStart=function(e){var t=e.data;if(this._logger.debug(A,"#_onApiAdStart(id="+t.adId+", player_name="+t.podPlayerName+", parent_name="+this._assetData.videoId()+", pod_pos="+t.adPosition+")"),this._checkCall("_onApiAdStart")&&this._inputDataValidator.validateFields(t,["playhead","podPosition","podPlayerName","adId","adPosition"])){var n=new _;n.adId(t.adId),n.adName(t.adName),n.adLength(t.adLength),n.resolver(t.podPlayerName),n.podId(s(this._assetData.videoId())+"_"+t.podPosition),n.podPosition(t.adPosition+""),n.podName(t.podName),n.podOffset(t.podSecond),n.sid(this._generateSessionId()),this._assetData.adData(n),this._assetData.type(p.TYPE_AD),this._updateQoSInfo(t);var a=o.merge(t.metaVideo,t.metaAd);a=t.metaNielsen?o.merge(a,t.metaNielsen):a,a=t.metaAdNielsen?o.merge(a,t.metaAdNielsen):a;var i=new y(this,f.EVENT_TYPE_START,t.playhead,a,t._eventData[N]);if(this._sendHit(i),this._restoreLastInbandItem(),t.adGranularTracking){var r=t.adTrackingInterval?t.adTrackingInterval:this._reportingInterval;this._updateReportingInterval(r,!0)}}},i.prototype._onApiAdComplete=function(e){this._logger.debug(A,"#_onApiAdComplete()");var t=e.data;if(this._checkCall("_onApiAdComplete")&&this._inputDataValidator.validateFields(t,["playhead"])){if(this._assetData.type()!=p.TYPE_AD)return void this._logger.warn(A,"#_onApiAdComplete() > Ignoring the ad complete event, because we are no longer in an ad.");this._updateQoSInfo(t);var n=new y(this,f.EVENT_TYPE_COMPLETE,t.playhead,null,t._eventData[N]);this._sendHit(n),this._updateLastInbandItemToBuffering(),this._assetData.adData(null),this._assetData.type(p.TYPE_MAIN_CONTENT),this._updateReportingInterval(this._reportingInterval,!1)}},i.prototype._onApiAdSkip=function(e){this._logger.debug(A,"#_onApiAdSkip()");var t=e.data;if(this._checkCall("_onApiAdSkip")&&this._inputDataValidator.validateFields(t,["playhead"])){if(this._assetData.type()!=p.TYPE_AD)return void this._logger.warn(A,"#_onApiAdSkip() > Ignoring the ad skip event, because we are no longer in an ad.");this._updateQoSInfo(t);var n=new y(this,f.EVENT_TYPE_SKIP,t.playhead,null,t._eventData[N]);this._sendHit(n),this._updateLastInbandItemToBuffering(),this._assetData.adData(null),this._assetData.type(p.TYPE_MAIN_CONTENT),this._updateReportingInterval(this._reportingInterval,!1)}},i.prototype._onApiChapterStart=function(e){var t=e.data;if(this._logger.debug(A,"#_onApiChapterStart(name="+t.chapterName+", length="+t.chapterLength+", position="+t.chapterPosition+", chapter_offset="+t.chapterOffset+")"),this._checkCall("_onApiChapterStart")&&this._inputDataValidator.validateFields(t,["playhead","chapterPosition","chapterOffset","chapterLength"])){var n=new h;n.id(s(this._assetData.videoId())+"_"+t.chapterPosition),n.name(t.chapterName),n.length(t.chapterLength),n.position(t.chapterPosition),n.offset(t.chapterOffset),n.sid(this._generateSessionId()),this._assetData.chapterData(n),this._updateQoSInfo(t);var a=o.merge(t.metaVideo,t.metaChapter),i=new y(this,f.EVENT_TYPE_CHAPTER_START,t.playhead,a,t._eventData[N]);i.assetData.adData(null),i.assetData.type(p.TYPE_MAIN_CONTENT),this._sendHit(i)}},i.prototype._onApiChapterComplete=function(e){this._logger.debug(A,"#_onApiChapterComplete()");var t=e.data;if(this._checkCall("_onApiChapterComplete")&&this._inputDataValidator.validateFields(t,["playhead"])){if(!this._assetData.chapterData())return void this._logger.warn(A,"#_onApiChapterComplete() > Ignoring the chapter complete event, because we are no longer in a chapter.");this._updateQoSInfo(t);var n=new y(this,f.EVENT_TYPE_CHAPTER_COMPLETE,t.playhead,null,t._eventData[N]);n.assetData.adData(null),n.assetData.type(p.TYPE_MAIN_CONTENT),this._sendHit(n),this._assetData.chapterData(null)}},i.prototype._onApiChapterSkip=function(e){this._logger.debug(A,"#_onApiChapterSkip()");var t=e.data;if(this._checkCall("_onApiChapterSkip")&&this._inputDataValidator.validateFields(t,["playhead"])){if(!this._assetData.chapterData())return void this._logger.warn(A,"#_onApiChapterSkip() > Ignoring the chapter skip event, because we are no longer in a chapter.");this._updateQoSInfo(t);var n=new y(this,f.EVENT_TYPE_CHAPTER_SKIP,t.playhead,null,t._eventData[N]);n.assetData.adData(null),n.assetData.type(p.TYPE_MAIN_CONTENT),this._sendHit(n),this._assetData.chapterData(null)}},i.prototype._onApiBitrateChange=function(e){this._logger.debug(A,"#_onApiBitrateChange()");var t=e.data;if(this._checkCall("_onApiBitrateChange")&&this._inputDataValidator.validateFields(t,["playhead"])){this._updateQoSInfo(t);var n=new y(this,f.EVENT_TYPE_BITRATE_CHANGE,t.playhead,null,t._eventData[N]);this._sendHit(n)}},i.prototype._onApiTrackError=function(e){var t=e.data;if(this._logger.debug(A,"#_onApiTrackError(source="+t._eventData.source+", err_id="+t._eventData.error_id+")"),this._isTrackingSessionActive){if(this._trackExternalErrors||t._eventData.source===P){this._updateQoSInfo(t);var n=new y(this,f.EVENT_TYPE_ERROR,0,null,t._eventData[N]);n.eventData.id(t._eventData.error_id),n.eventData.source(t._eventData.source),this._sendHit(n)}}else this._logger.warn(A,"#_onApiTrackError() > No active tracking session.")},i.prototype._onApiTrackInternalError=function(e){var t=e.data;this._logger.debug(A,"#_onApiTrackInternalError(source="+t.source+", err_id="+t.error_id+")"),this._updateQoSInfo(t);var n=new y(this,f.EVENT_TYPE_ERROR,0);n.eventData.id(t.error_id),n.eventData.source(t.source),this._sendHit(n)},i.prototype._onApiQuantumEnd=function(e){this._logger.debug(A,"#_onApiQuantumEnd(interval="+this._channel.request(I)+")");var t=e.data;if(this._checkCall("_onApiQuantumEnd")&&this._inputDataValidator.validateFields(t,["playhead"])){var n=this._lastInBandItem;if(n){this._updateQoSInfo(t);var a=new y(this,n.eventData.type(),t.playhead,n.meta,n.callback);a.filterReport=n.filterReport,this._sendHit(a,!0)}}},i.prototype._onNetworkCheckStatusComplete=function(e){var t=e.data;this._trackExternalErrors=t[B],this._reportingInterval=t[R],this._reportingInterval||(this._reportingInterval=ge),this._logger.debug(A,"#_onNetworkCheckStatusComplete(track_ext_err="+this._trackExternalErrors+")")},i.prototype._onResetSessionId=function(){var e=this._generateSessionId();this._sessionData=new c,this._sessionData.sessionId(e),this._logger.debug(A,"#_resetSessionId(new sessionId="+e+")")},i.prototype._installEventListeners=function(){this._channel.on(j,this._onApiAnalyticsStart,this),this._channel.on(V,this._onApiAnalyticsAdStart,this),this._channel.on(F,this._onApiVideoLoad,this),this._channel.on(x,this._onApiVideoUnload,this),this._channel.on(U,this._onApiVideoStart,this),this._channel.on(H,this._onApiVideoComplete,this),this._channel.on(G,this._onApiVideoSkip,this),this._channel.on(K,this._onApiVideoResume,this),this._channel.on(Y,this._onApiVideoSessionEnd,this),this._channel.on(q,this._onApiAdBreakStart,this),this._channel.on(W,this._onApiAdBreakComplete,this),this._channel.on(z,this._onApiAdStart,this),this._channel.on(X,this._onApiAdComplete,this),this._channel.on(Q,this._onApiAdSkip,this),this._channel.on(J,this._onApiPlay,this),this._channel.on($,this._onApiPause,this),this._channel.on(Z,this._onApiBufferStart,this),this._channel.on(ee,this._onApiChapterStart,this),this._channel.on(te,this._onApiChapterComplete,this),this._channel.on(ne,this._onApiChapterSkip,this),this._channel.on(re,this._onApiBitrateChange,this),this._channel.on(ae,this._onApiTrackError,this),this._channel.on(ie,this._onApiTrackInternalError,this),this._channel.on(se,this._onApiQuantumEnd,this),this._channel.on(ce,this._onNetworkCheckStatusComplete,this),this._channel.on(D,this._onResetSessionId,this),this._channel.reply(C,function(){return this._sessionData&&this._sessionData.sessionId()?this._sessionData.sessionId():null},this)},i.prototype._uninstallEventListeners=function(){this._channel.off(null,null,this)},i.prototype._resetInternalState=function(){this._logger.debug(A,"#_resetInternalState()"),this._isTrackingSessionActive=!1,this._isVideoComplete=!1,this._autoComputedStartupTime=0,this._lastInBandItem=null,this._stashedLastInBandItem=null,this._streamData=new b,this._qosData=new m,this._sessionData=new c,this._assetData=new p,this._cuserData=null},i.prototype._generateSessionId=function(){return""+(new Date).getTime()+Math.floor(1e9*Math.random())},i.prototype._updateQoSInfo=function(e){this._qosData.bitrate(e.bitrate||0),this._qosData.fps(e.fps||0),this._qosData.droppedFrames(e.droppedFrames||0),null==e.startupTime||isNaN(e.startupTime)?(this._qosData.startupTime(this._autoComputedStartupTime),this._qosData.isStartupTimeOverridden=!1):(this._qosData.startupTime(e.startupTime),this._qosData.isStartupTimeOverridden=!0)},i.prototype._checkCall=function(e){return this._isTrackingSessionActive?!this._isVideoComplete||"_onApiVideoSessionEnd"===e||(this._logger.warn(A,"#"+e+"() > The video content already completed."),!1):(this._logger.warn(A,"#"+e+"() > No active tracking session."),!1)},i.prototype._updateReportingInterval=function(e,t){var n={};n[M]=!!t,n[R]=e,this._channel.trigger(new r(le,n))},i.prototype._updateLastInBandItem=function(e){var t=this._lastInBandItem,n=(new Date).getTime(),a=t.assetData.type()===p.TYPE_AD||e.assetData.type()===p.TYPE_AD,i=1e3*Math.abs(e.eventData.playhead()-t.eventData.playhead()),r=Math.abs(n-t.eventData.ts()),s=Math.abs(i-r),o=r;ue Plugin in ERROR state."),!1):a.__super__._canProcess.call(this):(this._logger.error(this._logTag,"_canProcess() > Plugin not configured."),!1)},a.prototype._cmdAnalyticsError=function(){this._errorInfo||(this._errorInfo=new l("Internal error","AdobeAnalyticsPlugin is in ERROR state."),this._trigger(E,this._errorInfo),this._delegate&&this._delegate.onError(this._errorInfo))},a.prototype._cmdAnalyticsStart=function(e){this._canProcess()&&this._channel.trigger(new i(pe,e))},a.prototype._cmdAnalyticsAdStart=function(e){this._canProcess()&&this._channel.trigger(new i(be,e))},a.prototype._cmdVideoLoad=function(e){this._errorInfo=null,this._canProcess()&&(this._isTrackingSessionActive&&this._channel.trigger(new i(he,e)),this._isTrackingSessionActive=!1,this._isPaused=!0,this._isSeeking=!1,this._isBuffering=!1,this._isVideoIdle=!1,this._filter.clear(),this._channel.trigger(new i(_e,e)),this._isTrackingSessionActive=!0)},a.prototype._cmdVideoUnload=function(e){this._errorInfo=null,this._canProcess()&&(this._channel.trigger(new i(he,e)),this._filter.flush(),this._runReportingTimer(!1),this._runFlushFilterTimer(!1),this._runIdleTimer(!1),this._isTrackingSessionActive=!1)},a.prototype._cmdBeginReporting=function(){this._canProcess()&&this._channel.trigger(new i(Fe,{}))},a.prototype._cmdVideoSessionEnd=function(e){this._canProcess()&&this._channel.trigger(new i(Pe,e))},a.prototype._cmdVideoStart=function(e){this._canProcess()&&(this._channel.trigger(new i(ye,e)),this._filter.flush())},a.prototype._cmdVideoComplete=function(e){this._canProcess()&&this._channel.trigger(new i(Se,e))},a.prototype._cmdVideoSkip=function(e){this._canProcess()&&this._channel.trigger(new i(ve,e))},a.prototype._cmdVideoResume=function(e){this._canProcess()&&this._channel.trigger(new i(Ae,e))},a.prototype._cmdPlay=function(e){this._canProcess()&&(this._isPaused=!1,this._resumePlaybackIfPossible(e))},a.prototype._cmdPause=function(e){this._canProcess()&&(this._channel.trigger(new i(Ne,e)),this._isPaused=!0,this._runIdleTimer(!0))},a.prototype._cmdAdBreakStart=function(e){this._canProcess()&&this._channel.trigger(new i(ke,e))},a.prototype._cmdAdBreakComplete=function(e){this._canProcess()&&(this._channel.trigger(new i(Ee,e)),this._resumePlaybackIfPossible(e))},a.prototype._cmdAdStart=function(e){
this._canProcess()&&(this._channel.trigger(new i(Te,e)),this._resumePlaybackIfPossible(e))},a.prototype._cmdAdComplete=function(e){this._canProcess()&&this._channel.trigger(new i(Ie,e))},a.prototype._cmdAdSkip=function(e){this._canProcess()&&this._channel.trigger(new i(Ce,e))},a.prototype._cmdBufferStart=function(e){this._canProcess()&&(this._channel.trigger(new i(we,e)),this._isBuffering=!0,this._runIdleTimer(!0))},a.prototype._cmdBufferComplete=function(e){this._canProcess()&&(this._isBuffering=!1,this._isPaused?this._channel.trigger(new i(Ne,e)):this._resumePlaybackIfPossible(e))},a.prototype._cmdSeekStart=function(e){this._canProcess()&&(this._channel.trigger(new i(Ne,e)),this._isSeeking=!0,this._runIdleTimer(!0))},a.prototype._cmdSeekComplete=function(e){this._canProcess()&&(this._isSeeking=!1,this._resumePlaybackIfPossible(e))},a.prototype._cmdChapterStart=function(e){this._canProcess()&&this._channel.trigger(new i(Oe,e))},a.prototype._cmdChapterComplete=function(e){this._canProcess()&&this._channel.trigger(new i(Le,e))},a.prototype._cmdChapterSkip=function(e){this._canProcess()&&this._channel.trigger(new i(Be,e))},a.prototype._cmdBitrateChange=function(e){this._canProcess()&&this._channel.trigger(new i(je,e))},a.prototype._cmdTrackError=function(e){this._canProcess()&&this._channel.trigger(new i(Re,e))},a.prototype._cmdClockReportingTick=function(e){this._canProcess()&&this._channel.trigger(new i(Ve,e))},a.prototype._onCheckStatusComplete=function(e){if(this._canProcess()){var t=!1;e&&e.data&&e.data[ge]&&(t=e.data[ge]),this._logger.debug(this._logTag,"#_onCheckStatusComplete(trackingDisabled="+t+")"),t&&this._delegate&&this._delegate.onTrackingDisabled()}},a.prototype._cmdIdleTick=function(e){this._canProcess()&&(this._isVideoIdle=!0,this._trigger(ee),this._channel.trigger(new i(Pe,e)),this._filter.flush(),this._runReportingTimer(!1),this._runFlushFilterTimer(!1),this._runIdleTimer(!1),this._trigger($))},a.prototype._onError=function(e){this._errorInfo=e.data;var t={};t[re]=xe,t[se]=this._errorInfo.getMessage()+"|"+this._errorInfo.getDetails(),this._channel.trigger(new i(Me,t)),this._runReportingTimer(!1),this._trigger(E,this._errorInfo),this._delegate&&this._delegate.onError(this._errorInfo)},a.prototype._runIdleTimer=function(e){var t={};t[ie]=!0,e?this._channel.command(qe,t):this._channel.command(We,t)},a.prototype._runFlushFilterTimer=function(e){var t={};t[ie]=!0,e?this._channel.command(Ke,t):this._channel.command(Ye,t)},a.prototype._runReportingTimer=function(e){var t={};t[ie]=!0,e?this._channel.command(He,t):this._channel.command(Ge,t)},a.prototype._registerCommands=function(){this._pluginManager.comply(this,"handleAnalyticsError",this._cmdAnalyticsError),this._pluginManager.comply(this,"handleAnalyticsStart",this._cmdAnalyticsStart),this._pluginManager.comply(this,"handleAnalyticsAdStart",this._cmdAnalyticsAdStart),this._pluginManager.comply(this,"handleVideoLoad",this._cmdVideoLoad),this._pluginManager.comply(this,"handleVideoUnload",this._cmdVideoUnload),this._pluginManager.comply(this,"handleBeginReporting",this._cmdBeginReporting),this._pluginManager.comply(this,"handleVideoSessionEnd",this._cmdVideoSessionEnd),this._pluginManager.comply(this,"handleVideoStart",this._cmdVideoStart),this._pluginManager.comply(this,"handleVideoComplete",this._cmdVideoComplete),this._pluginManager.comply(this,"handleVideoSkip",this._cmdVideoSkip),this._pluginManager.comply(this,"handleVideoResume",this._cmdVideoResume),this._pluginManager.comply(this,"handlePlay",this._cmdPlay),this._pluginManager.comply(this,"handlePause",this._cmdPause),this._pluginManager.comply(this,"handleAdBreakStart",this._cmdAdBreakStart),this._pluginManager.comply(this,"handleAdBreakComplete",this._cmdAdBreakComplete),this._pluginManager.comply(this,"handleAdStart",this._cmdAdStart),this._pluginManager.comply(this,"handleAdComplete",this._cmdAdComplete),this._pluginManager.comply(this,"handleAdSkip",this._cmdAdSkip),this._pluginManager.comply(this,"handleBufferStart",this._cmdBufferStart),this._pluginManager.comply(this,"handleBufferComplete",this._cmdBufferComplete),this._pluginManager.comply(this,"handleSeekStart",this._cmdSeekStart),this._pluginManager.comply(this,"handleSeekComplete",this._cmdSeekComplete),this._pluginManager.comply(this,"handleChapterStart",this._cmdChapterStart),this._pluginManager.comply(this,"handleChapterComplete",this._cmdChapterComplete),this._pluginManager.comply(this,"handleChapterSkip",this._cmdChapterSkip),this._pluginManager.comply(this,"handleBitrateChange",this._cmdBitrateChange),this._pluginManager.comply(this,"handleTrackError",this._cmdTrackError),this._pluginManager.comply(this,"handleClockReportingTick",this._cmdClockReportingTick),this._pluginManager.comply(this,"handleIdleTick",this._cmdIdleTick)},a.prototype._registerBehaviours=function(){this._pluginManager.registerBehaviour(new r(y,C),this,"handleVideoLoad",[new o(h,"rsid","rsid"),new o(h,"tracking_server","trackingServer")]),this._pluginManager.registerBehaviour(new r(y,D),this,"handleVideoUnload"),this._pluginManager.registerBehaviour(new r(y,te),this,"handleBeginReporting"),this._pluginManager.registerBehaviour(new r(y,N),this,"handleVideoSessionEnd",[new o(y,"video.playhead","playhead")]),this._pluginManager.registerBehaviour(new r(y,w),this,"handleVideoStart",[new o(y,"video.id","videoId"),new o(y,"video.name","videoName"),new o(y,"video.length","videoLength"),new o(y,"video.playhead","playhead"),new o(y,"video.playerName","playerName"),new o(y,"video.streamType","streamType"),new o(y,"qos.fps","fps"),new o(y,"qos.droppedFrames","droppedFrames"),new o(y,"qos.bitrate","bitrate"),new o(y,"qos.startupTime","startupTime"),new o(h,"rsid","rsid"),new o(h,"tracking_server","trackingServer"),new o(h,"channel","channel"),new o(h,"meta.video.*","metaVideo"),new o(h,"ssl","useSsl"),new o(S,"meta","metaNielsen"),new o(_,"publisher","publisher"),new o(_,"sdk","sdk"),new o(_,"ovp","ovp"),new o(_,"version","version"),new o(_,"api_level","apiLvl")]),this._pluginManager.registerBehaviour(new r(y,L),this,"handleVideoComplete",[new o(y,"qos.fps","fps"),new o(y,"qos.droppedFrames","droppedFrames"),new o(y,"qos.bitrate","bitrate"),new o(y,"qos.startupTime","startupTime")]),this._pluginManager.registerBehaviour(new r(y,B),this,"handleVideoSkip",[new o(y,"video.playhead","playhead"),new o(y,"qos.fps","fps"),new o(y,"qos.droppedFrames","droppedFrames"),new o(y,"qos.bitrate","bitrate"),new o(y,"qos.startupTime","startupTime")]),this._pluginManager.registerBehaviour(new r(y,O),this,"handleVideoResume",[new o(y,"video.id","videoId"),new o(y,"video.name","videoName"),new o(y,"video.length","videoLength"),new o(y,"video.playhead","playhead"),new o(y,"video.playerName","playerName"),new o(y,"video.streamType","streamType")]),this._pluginManager.registerBehaviour(new r(y,R),this,"handlePlay",[new o(y,"video.playhead","playhead"),new o(y,"qos.fps","fps"),new o(y,"qos.droppedFrames","droppedFrames"),new o(y,"qos.bitrate","bitrate"),new o(y,"qos.startupTime","startupTime")]),this._pluginManager.registerBehaviour(new r(y,M),this,"handlePause",[new o(y,"video.playhead","playhead"),new o(y,"video.playheadStalled","playheadStalled"),new o(y,"qos.fps","fps"),new o(y,"qos.droppedFrames","droppedFrames"),new o(y,"qos.bitrate","bitrate"),new o(y,"qos.startupTime","startupTime")]),this._pluginManager.registerBehaviour(new r(y,V),this,"handleAdBreakStart",[new o(y,"ad.isInAdBreak","isInAdBreak"),new o(y,"video.playhead","playhead"),new o(y,"qos.fps","fps"),new o(y,"qos.droppedFrames","droppedFrames"),new o(y,"qos.bitrate","bitrate"),new o(y,"qos.startupTime","startupTime")]),this._pluginManager.registerBehaviour(new r(y,F),this,"handleAdBreakComplete",[new o(y,"ad.isInAdBreak","isInAdBreak"),new o(y,"video.playhead","playhead"),new o(y,"qos.fps","fps"),new o(y,"qos.droppedFrames","droppedFrames"),new o(y,"qos.bitrate","bitrate"),new o(y,"qos.startupTime","startupTime")]),this._pluginManager.registerBehaviour(new r(y,x),this,"handleAdStart",[new o(y,"video.playhead","playhead"),new o(y,"ad.id","adId"),new o(y,"ad.name","adName"),new o(y,"ad.length","adLength"),new o(y,"ad.position","adPosition"),new o(y,"ad.granularTracking","adGranularTracking"),new o(y,"ad.trackingInterval","adTrackingInterval"),new o(y,"pod.name","podName"),new o(y,"pod.playerName","podPlayerName"),new o(y,"pod.position","podPosition"),new o(y,"pod.startTime","podSecond"),new o(y,"qos.fps","fps"),new o(y,"qos.droppedFrames","droppedFrames"),new o(y,"qos.bitrate","bitrate"),new o(y,"qos.startupTime","startupTime"),new o(h,"meta.video.*","metaVideo"),new o(h,"meta.ad.*","metaAd"),new o(S,"meta","metaNielsen"),new o(S,"metaAd","metaAdNielsen")]),this._pluginManager.registerBehaviour(new r(y,U),this,"handleAdComplete",[new o(y,"video.playhead","playhead"),new o(y,"ad.isInAdBreak","isInAdBreak"),new o(y,"qos.fps","fps"),new o(y,"qos.droppedFrames","droppedFrames"),new o(y,"qos.bitrate","bitrate"),new o(y,"qos.startupTime","startupTime")]),this._pluginManager.registerBehaviour(new r(y,H),this,"handleAdSkip",[new o(y,"video.playhead","playhead"),new o(y,"ad.isInAdBreak","isInAdBreak"),new o(y,"qos.fps","fps"),new o(y,"qos.droppedFrames","droppedFrames"),new o(y,"qos.bitrate","bitrate"),new o(y,"qos.startupTime","startupTime")]),this._pluginManager.registerBehaviour(new r(y,G),this,"handleBufferStart",[new o(y,"video.playhead","playhead"),new o(y,"qos.fps","fps"),new o(y,"qos.droppedFrames","droppedFrames"),new o(y,"qos.bitrate","bitrate"),new o(y,"qos.startupTime","startupTime")]),this._pluginManager.registerBehaviour(new r(y,K),this,"handleBufferComplete",[new o(y,"video.playhead","playhead"),new o(y,"video.playheadStalled","playheadStalled"),new o(y,"qos.fps","fps"),new o(y,"qos.droppedFrames","droppedFrames"),new o(y,"qos.bitrate","bitrate"),new o(y,"qos.startupTime","startupTime")]),this._pluginManager.registerBehaviour(new r(y,Y),this,"handleSeekStart",[new o(y,"video.playhead","playhead")]),this._pluginManager.registerBehaviour(new r(y,q),this,"handleSeekComplete",[new o(y,"video.playhead","playhead"),new o(y,"ad.isInAd","isInAd"),new o(y,"ad.id","adId"),new o(y,"ad.position","adPosition"),new o(y,"pod.playerName","podPlayerName"),new o(y,"pod.position","podPosition"),new o(y,"chapter.isInChapter","isInChapter"),new o(y,"chapter.position","chapterPosition"),new o(y,"chapter.name","chapterName"),new o(y,"chapter.length","chapterLength"),new o(y,"chapter.startTime","chapterOffset"),new o(y,"qos.fps","fps"),new o(y,"qos.droppedFrames","droppedFrames"),new o(y,"qos.bitrate","bitrate"),new o(y,"qos.startupTime","startupTime")]),this._pluginManager.registerBehaviour(new r(y,W),this,"handleChapterStart",[new o(y,"video.playhead","playhead"),new o(y,"chapter.position","chapterPosition"),new o(y,"chapter.name","chapterName"),new o(y,"chapter.length","chapterLength"),new o(y,"chapter.startTime","chapterOffset"),new o(y,"qos.fps","fps"),new o(y,"qos.droppedFrames","droppedFrames"),new o(y,"qos.bitrate","bitrate"),new o(y,"qos.startupTime","startupTime"),new o(h,"meta.video.*","metaVideo"),new o(h,"meta.chapter.*","metaChapter"),new o(S,"meta","metaNielsen")]),this._pluginManager.registerBehaviour(new r(y,z),this,"handleChapterComplete",[new o(y,"video.playhead","playhead"),new o(y,"qos.fps","fps"),new o(y,"qos.droppedFrames","droppedFrames"),new o(y,"qos.bitrate","bitrate"),new o(y,"qos.startupTime","startupTime")]),this._pluginManager.registerBehaviour(new r(y,X),this,"handleChapterSkip",[new o(y,"video.playhead","playhead"),new o(y,"qos.fps","fps"),new o(y,"qos.droppedFrames","droppedFrames"),new o(y,"qos.bitrate","bitrate"),new o(y,"qos.startupTime","startupTime")]),this._pluginManager.registerBehaviour(new r(y,Q),this,"handleBitrateChange",[new o(y,"video.playhead","playhead"),new o(y,"qos.fps","fps"),new o(y,"qos.droppedFrames","droppedFrames"),new o(y,"qos.bitrate","bitrate"),new o(y,"qos.startupTime","startupTime")]),this._pluginManager.registerBehaviour(new r(y,J),this,"handleTrackError"),this._pluginManager.registerBehaviour(new r(v,ne),this,"handleClockReportingTick",[new o(y,"video.playhead","playhead"),new o(y,"qos.fps","fps"),new o(y,"qos.droppedFrames","droppedFrames"),new o(y,"qos.bitrate","bitrate"),new o(y,"qos.startupTime","startupTime")]),this._pluginManager.registerBehaviour(new r(y,j),this,"handleClockReportingTick",[new o(y,"video.playhead","playhead"),new o(y,"qos.fps","fps"),new o(y,"qos.droppedFrames","droppedFrames"),new o(y,"qos.bitrate","bitrate"),new o(y,"qos.startupTime","startupTime")]),this._pluginManager.registerBehaviour(new r(v,ae),this,"handleIdleTick",[new o(y,"video.playhead","playhead")]),this._pluginManager.registerBehaviour(new r(_,ee),this,"handleClockReportingTick",[new o(y,"video.playhead","playhead"),new o(y,"qos.fps","fps"),new o(y,"qos.droppedFrames","droppedFrames"),new o(y,"qos.bitrate","bitrate"),new o(y,"qos.startupTime","startupTime")]),this._pluginManager.registerBehaviour(new r(h,E),this,"handleAnalyticsError"),this._pluginManager.registerBehaviour(new r(h,T),this,"handleAnalyticsStart",[new o(h,"vid","vid"),new o(h,"aid","aid"),new o(h,"mid","mid"),new o(h,"customerIDs","customerIDs"),new o(h,"blob","blob"),new o(h,"loc_hint","loc_hint"),new o(y,"video.playhead","playhead"),new o(y,"qos.fps","fps"),new o(y,"qos.droppedFrames","droppedFrames"),new o(y,"qos.bitrate","bitrate"),new o(y,"qos.startupTime","startupTime")]),this._pluginManager.registerBehaviour(new r(h,I),this,"handleAnalyticsAdStart",[new o(y,"video.playhead","playhead"),new o(y,"qos.fps","fps"),new o(y,"qos.droppedFrames","droppedFrames"),new o(y,"qos.bitrate","bitrate"),new o(y,"qos.startupTime","startupTime")])},a.prototype._setupDataResolver=function(){var i={},e=this;i.version=function(){return u.getVersion()},i.api_level=function(){return u.getApiLevel()},i.tracking_server=function(){return e._config?e._config.trackingServer:null},i.publisher=function(){return e._config?e._config.publisher:null},i.quiet_mode=function(){return!!e._config&&e._config.quietMode},i.ovp=function(){return e._config?e._config.ovp:null},i.sdk=function(){return e._config?e._config.sdk:null},i.is_primetime=function(){return!!e._config&&e._config.__isPrimetime},i.psdk_version=function(){return e._config?e._config.__psdkVersion:null},i.session_id=function(){return e._channel.request(A)},this._dataResolver=function(e){if(!e||0==e.length)return null;for(var t=null,n=0;n In ERROR state."),!1):r.__super__._canProcess.call(this)},r.prototype._cmdVideoLoad=function(){this._errorInfo=null},r.prototype._cmdBeginReporting=function(){this._logger.debug(this._logTag,"#_cmdBeginReporting()"),this._beginReporting=!0,this._resumeWorkQueue()},r.prototype._cmdVideoStart=function(e){this._logger.debug(this._logTag,"#_cmdVideoStart()"),this._canProcess()&&this._workQueue.addCommand(new u(this._executeOpen,this,[e]))},r.prototype._cmdAdStart=function(e){this._logger.debug(this._logTag,"#_cmdAdStart()"),this._canProcess()&&this._workQueue.addCommand(new u(this._executeOpenAd,this,[e]))},r.prototype._cmdHeartbeatPluginError=function(){this._errorInfo||(this._errorInfo=new g("Internal error","HeartbeatPlugin is in ERROR state."),this._trigger(k,this._errorInfo),this._delegate&&this._delegate.onError(this._errorInfo))},r.prototype._track=function(e){try{var t=this._appMeasurement.linkTrackVars;this._appMeasurement.linkTrackVars="",this._appMeasurement.track(e),this._appMeasurement.linkTrackVars=t}catch(e){this._logger.warn(this._logTag,"appMeasurement.track() call threw an exception.")}},r.prototype._executeOpen=function(e){if(this._logger.debug(this._logTag,"#_executeOpen(id="+e.videoId+", videoName="+e.videoName+", mediaType="+e.mediaType+", streamType="+e.streamType+", length="+e.videoLength+", playerName="+e.playerName+", channel="+e.channel+", isPrimetime="+e.isPrimetime+", sessionId="+e.sessionId+")"),this._canProcess()&&this._inputDataValidator.validateFields(e,["videoId","mediaType","streamType","videoLength","playerName"])){var t={};for(var n in e.metaVideo)e.metaVideo.hasOwnProperty(n)&&(t[n]=e.metaVideo[n]);if(e.metaNielsen)for(var n in e.metaNielsen)e.metaNielsen.hasOwnProperty(n)&&(t[n]=e.metaNielsen[n]);t["a.contentType"]=e.streamType,t["a.media.name"]=e.videoId,t["a.media.friendlyName"]=e.videoName||"",t["a.media.length"]=Math.floor(e.videoLength)||"0.0",t["a.media.playerName"]=e.playerName,t["a.media.channel"]=e.channel||"",t["a.media.view"]=!0,t["a.media.vsid"]=e.sessionId;var a={};a.contextData=t,"audio"===e.mediaType?(a.pev3=I,a.ms_a="1"):a.pev3=E,a.pe=e.isPrimetime?N:D,this._track(a);var i=this;setTimeout(function(){i._trigger(L,e)},0)}},r.prototype._executeOpenAd=function(e){var t=f(e.videoId)+"_"+e.podPosition;if(this._logger.debug(this._logTag,"#_executeOpenAd(id="+e.adId+", mediaType="+e.mediaType+", streamType="+e.streamType+", length="+e.adLength+", podPlayerName="+e.podPlayerName+", parentId="+e.videoId+", podId="+t+", parentPodPosition="+e.adPosition+", podSecond="+e.podSecond+")"),this._canProcess()&&this._inputDataValidator.validateFields(e,["videoId","mediaType","streamType","playerName","adId","adLength","podPlayerName","adPosition"])){e.podSecond=null==e.podSecond||isNaN(e.podSecond)?e.playhead:e.podSecond;var n={};for(a in e.metaVideo)e.metaVideo.hasOwnProperty(a)&&(n[a]=e.metaVideo[a]);for(a in e.metaAd)e.metaAd.hasOwnProperty(a)&&(n[a]=e.metaAd[a]);if(e.metaNielsen)for(var a in e.metaNielsen)e.metaNielsen.hasOwnProperty(a)&&(n[a]=e.metaNielsen[a]);n["a.contentType"]=e.streamType,n["a.media.name"]=e.videoId,n["a.media.playerName"]=e.playerName,n["a.media.channel"]=e.channel||"",n["a.media.vsid"]=e.sessionId,n["a.media.friendlyName"]=e.videoName||"",n["a.media.length"]=Math.floor(e.videoLength)||"0.0",n["a.media.ad.name"]=e.adId,n["a.media.ad.friendlyName"]=e.adName||"",n["a.media.ad.podFriendlyName"]=e.podName||"",n["a.media.ad.length"]=Math.floor(e.adLength)||"0.0",n["a.media.ad.playerName"]=e.podPlayerName,n["a.media.ad.pod"]=t,n["a.media.ad.podPosition"]=Math.floor(e.adPosition)||"0.0",n["a.media.ad.podSecond"]=Math.floor(e.podSecond)||"0.0",n["a.media.ad.view"]=!0;var i={};i.contextData=n,"audio"===e.mediaType?(i.pev3=C,i.ms_a="1"):i.pev3=T,i.pe=e.isPrimetime?O:w,this._track(i);var r=this;setTimeout(function(){r._trigger(B,e)},0)}},r.prototype._setupDataResolver=function(){var i={},r=this;i.rsid=function(){return r._appMeasurement.account},i.tracking_server=function(){return r._appMeasurement.ssl&&r._appMeasurement.trackingServerSecure?r._appMeasurement.trackingServerSecure:r._appMeasurement.trackingServer},i.ssl=function(){return r._appMeasurement.ssl},i.vid=function(){return r._appMeasurement.visitorID},i.aid=function(){return r._appMeasurement.analyticsVisitorID},i.mid=function(){return r._appMeasurement.marketingCloudVisitorID},i.blob=function(){return r._appMeasurement.audienceManagerBlob},i.loc_hint=function(){return r._appMeasurement.audienceManagerLocationHint?parseInt(r._appMeasurement.audienceManagerLocationHint):""},i.customerIDs=function(){var e={},t=r._appMeasurement.visitor.getCustomerIDs();for(var n in t)if(t.hasOwnProperty(n)){var a=t[n];if("object"==typeof a){for(var i in a)a.hasOwnProperty(i)&&("authState"==i?e[n+".as"]=a[i]:e[n+"."+i]=a[i]);e[n+".as"]||(e[n+".as"]="0")}}return e},i.channel=function(){return r._config?r._config.channel:null},i.meta=function(e){var t=e.split(".");if(t.length<2)return null;var n=t.shift();switch(e=t.join("."),n){case"video":return e==l.WILDCARD?r._videoMetadata:r._videoMetadata[e];case"ad":return e==l.WILDCARD?r._adMetadata:r._adMetadata[e];case"chapter":return e==l.WILDCARD?r._chapterMetadata:r._chapterMetadata[e];default:return null}},this._dataResolver=function(e){if(!e||0==e.length)return null;for(var t=null,n=0;n= '2.11.0' to support tracking audio content.",ErrTrackingDisabled:"MediaHeartbeat tracking is disabled for this publisher. Please contact Adobe Representative to enable tracking.",ErrBeginReporting:"MediaHeartbeat has already started reporting."},C="MediaHeartbeat",D="key_media_object",N="key_adbreak_object",w="key_ad_object",O="key_chapter_object",L="key_timed_metadata_object",B="key_custom_metadata",R="key_error_id",M="a.media.streamType",j="a.__pttvsdkVersion",V="granular_ad_tracking",F=250;a._MediaHeartbeatRule=T,a._MediaHeartbeatErrorMessage=I,a.MediaHeartbeatDelegate=t,a.MediaHeartbeat=o,a.MediaHeartbeat._debugLogging=!1}(x.ADB.core,x.ADB.va),x.ADB||(x.ADB={}),x.ADB.core||(x.ADB.core=core),x.ADB.va||(x.ADB.va=va),x.ADB.va.plugins||(x.ADB.va.plugins={})}).call(t),e.va=t.ADB.va,e.core=t.ADB.core},"function"==typeof define&&define.amd?define(["exports"],a):"object"==typeof t&&"string"!=typeof t.nodeName?a(t):a(n.ADB={})}},"adobe-video-analytics/src/lib/helpers/mediaHeartbeat.js":{script:function(e,t,n){"use strict";var a=n("../codeLibrary/MediaSDK.min"),i=n("./deepFreeze"),r=a.va.MediaHeartbeat,s=(a.va.MediaHeartbeatDelegate,{Event:r.Event,MediaType:r.MediaType,StreamType:r.StreamType,MediaObjectKey:r.MediaObjectKey,VideoMetadataKeys:r.VideoMetadataKeys,AudioMetadataKeys:r.AudioMetadataKeys,AdMetadataKeys:r.AdMetadataKeys,version:r.version,createMediaObject:r.createMediaObject,createAdBreakObject:r.createAdBreakObject,createAdObject:r.createAdObject,createChapterObject:r.createChapterObject,createQoSObject:r.createQoSObject});e.exports=i(s)}},"adobe-video-analytics/src/lib/helpers/exportGlobal.js":{script:function(e,t,n,r){"use strict";var s=n("@adobe/reactor-window"),o=n("@adobe/reactor-object-assign"),c=n("./deepFreeze"),a=n("../codeLibrary/MediaSDK.min"),l=n("./getInstance"),u=n("./mediaHeartbeat"),d=a.va.MediaHeartbeatDelegate;e.exports=function(e){try{var t=e&&e.exportNamespace;if(t){var n={MediaHeartbeat:o({getInstance:l},u),MediaHeartbeatDelegate:d};if("undefined"==typeof s[t]||"object"==typeof s[t]&&!s[t])s[t]=c(n);else{var a='Exporting APIs to Browser window["'+t+'"] failed as it is not null/undefined.';r.logger.error(a)}}}catch(i){a='Exporting APIs to Browser window["'+t+'"] failed with reason'+i.message+".",r.logger.error(a)}}}},"adobe-video-analytics/src/lib/helpers/deepFreeze.js":{script:function(e){"use strict";function a(n){return Object.getOwnPropertyNames(n).forEach(function(e){var t=n[e];"object"==typeof t&&null!==t&&a(t)}),Object.freeze(n)}e.exports=a}}},settings:{ovp:"Ooyala",ssl:!0,channel:"web",appVersion:"v2.0",playerName:"cna_online_ooyalaplayer",debugLogging:!1,trackingServer:"mediacorp.hb.omtrdc.net",exportNamespace:"ADB"},hostedLibFilesBaseUrl:"https://assets.adobedtm.com/extensions/EPda19e4cc14f2458a8e6fd7f159b67247/"}},company:{orgId:"B464317853A9C8390A490D4E@AdobeOrg"},property:{name:"CNA (Online)",settings:{domains:["www.channelnewsasia.com"],undefinedVarsReturnEmpty:!0,ruleComponentSequencingEnabled:!1}},rules:[{id:"RLcff133f3754b42f5b74ab9f709f30e8b",name:"Direct Call Rule - Custom Page view",events:[{modulePath:"core/src/lib/events/directCall.js",settings:{identifier:"pageview"},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/queryStringParameter.js",settings:{name:"view",value:"embedNoPageView"},negate:!0}],actions:[{modulePath:"adobe-analytics/src/lib/actions/setVariables.js",settings:{customSetup:{source:function(e,t){function n(){}function a(){if(!window.s_loadT){var e=(new Date).getTime(),t=window.performance?performance.timing:0,n=t?t.requestStart:window.inHeadTS||0;s_loadT=n?Math.round((e-n)/100):""}return s_loadT}t.loadModule("Media"),t.Media.autoTrack=!1,t.Media.trackMilestones="25,50,75,90",t.Media.segmentByMilestones=!0,t.Media.playerName="cna_online_ooyalaplayer",t.Media.trackWhilePlaying=!0,t.Media.trackUsingContextData=!0,t.Media.trackVars="events,eVar13,eVar21,eVar22,,eVar24,prop10",t.Media.trackEvents="event22,event23,event24,event10,event14,event16,event17,event90",t.Media.contextDataMapping={"a.media.name":"eVar13,prop10","a.media.playerName":"eVar22","a.media.segment":"eVar21","a.contentType":"eVar24","a.media.timePlayed":"event10","a.media.view":"event14","a.media.segmentView":"event17","a.media.complete":"event16","a.media.milestones":{25:"event22",50:"event23",75:"event24",90:"event90"}},t.usePlugins=!0,t.doPlugins=n,t.apl=new Function("l","v","d","u","var s=this,m=0;if(!l)l='';if(u){var i,n,a=s.split(l,d);for(i=0;i-1?i:l.length;a[x++]=l.substring(0,i);l=l.substring(i+d.length);}return a"),t.performanceTiming=new Function("v","var s=this;if(v)s.ptv=v;if(typeof performance!='undefined'){if(performance.timing.loadEventEnd==0){s.pi=setInterval(function(){s.performanceWrite()},250);}if(!s.ptc||s.linkType=='e'){s.performanceRead();}else{s.rfe();s[s.ptv]='';}}"),t.performanceWrite=new Function("","var s=this;if(performance.timing.loadEventEnd>0)clearInterval(s.pi);try{if(s.c_r('s_ptc')==''&&performance.timing.loadEventEnd>0){try{var pt=performance.timing;var pta='';pta=s.performanceCheck(pt.fetchStart,pt.navigationStart);pta+='^^'+s.performanceCheck(pt.domainLookupStart,pt.fetchStart);pta+='^^'+s.performanceCheck(pt.domainLookupEnd,pt.domainLookupStart);pta+='^^'+s.performanceCheck(pt.connectEnd,pt.connectStart);pta+='^^'+s.performanceCheck(pt.responseStart,pt.connectEnd);pta+='^^'+s.performanceCheck(pt.responseEnd,pt.responseStart);pta+='^^'+s.performanceCheck(pt.loadEventStart,pt.domLoading);pta+='^^'+s.performanceCheck(pt.loadEventEnd,pt.loadEventStart);pta+='^^'+s.performanceCheck(pt.loadEventEnd,pt.navigationStart);s.c_w('s_ptc',pta);if(sessionStorage&&navigator.cookieEnabled&&s.ptv!='undefined'){var pe=performance.getEntries();var tempPe='';for(var i=0;i-1?pe[i].name.split('?')[0]:pe[i].name;tempPe+='|'+(Math.round(pe[i].startTime)/1000).toFixed(1)+'|'+(Math.round(pe[i].duration)/1000).toFixed(1)+'|'+pe[i].initiatorType;}sessionStorage.setItem('s_pec',tempPe);}}catch(err){return;}}}catch(err){return;}"),t.performanceCheck=new Function("a","b","if(a>=0&&b>=0){if((a-b)<60000&&((a-b)>=0)){return((a-b)/1000).toFixed(2);}else{return 600;}}"),t.performanceRead=new Function("","var s=this;if(performance.timing.loadEventEnd>0)clearInterval(s.pi);var cv=s.c_r('s_ptc');if(s.pte){var ela=s.pte.split(',');}if(cv!=''){var cva=s.split(cv,'^^');if(cva[1]!=''){for(var x=0;x<(ela.length-1);x++){s.events=s.apl(s.events,ela[x]+'='+cva[x],',',2);}}s.events=s.apl(s.events,ela[ela.length-1],',',2);}s.linkTrackEvents=s.apl(s.linkTrackEvents,s.pte,',',2);s.c_w('s_ptc','',0);if(sessionStorage&&navigator.cookieEnabled&&s.ptv!='undefined'){s[s.ptv]=sessionStorage.getItem('s_pec');sessionStorage.setItem('s_pec','',0);}else{s[s.ptv]='sessionStorage Unavailable';}s.ptc=true;"),t.rfe=new Function("","var s=this;var ea=s.split(s.events,',');var pta=s.split(s.pte,',');try{for(x in pta){var ptr=new RegExp(pta[x]+'[^,][0-9]*.[0-9](.*)');s.events=s.events.match(ptr)[1];s.contextData['events']=s.events;}}catch(e){return;}"),t.getPercentPageViewed=new Function("n","var s=this,W=window,EL=W.addEventListener,AE=W.attachEvent,E=['load','unload','scroll','resize','zoom','keyup','mouseup','touchend','orientationchange','pan'];W.s_Obj=s;s_PPVid=(n=='-'?s.pageName:n)||s.pageName||location.href;if(!W.s_PPVevent){s.s_PPVg=function(n,r){var k='s_ppv',p=k+'l',c=s.c_r(n||r?k:p),a=c.indexOf(',')>-1?c.split(',',10):[''],l=a.length,i;a[0]=unescape(a[0]);r=r||(n&&n!=a[0])||0;a.length=10;if(typeof a[0]!='string')a[0]='';for(i=1;i<10;i++)a[i]=!r&&i0&&b>0?M.round(C*b/h):0,O=W.orientation,o=!isNaN(O)?M.abs(o)%180:Y>X?0:90,L=e=='load'||s_PPVi<1,a=s.s_PPVg(s_PPVid,L),V=function(i,v,f,n){i=parseInt(typeof a==J&&a.length>i?a[i]:'0')||0;v=typeof v!=N?i:v;v=f||v>i?v:i;return n?v:v>C?C:v<0?0:v};if(new RegExp('(iPod|iPad|iPhone)').exec(navigator.userAgent||'')&&o){o=x;x=y;y=o}o=o?'P':'L';a[9]=L?'':a[9].substring(0,1);s.c_w('s_ppv',escape(W.s_PPVid)+','+V(1,p,L)+','+(L||!V(2)?p:V(2))+','+V(3,b,L,1)+','+X+','+Y+','+x+','+y+','+r+','+a[9]+(a[9]==o?'':o))}if(!W.s_PPVt&&e!='unload')W.s_PPVt=setTimeout(W.s_PPVevent,333)};for(var f=W.s_PPVevent,i=0;ids&&dde||d=12){U=' PM';H=H-12;}if(H==0){H=12;}D=da[D];tm=H+':'+M+U;return(tm+'|'+D);}"),t.getNewRepeat=new Function("d","cn","var s=this,e=new Date(),cval,sval,ct=e.getTime();d=d?d:30;cn=cn?cn:'s_nr';e.setTime(ct+d*24*60*60*1000);cval=s.c_r(cn);if(cval.length==0){s.c_w(cn,ct+'-New',e);return'New';}sval=s.split(cval,'-');if(ct-sval[0]<30*60*1000&&sval[1]=='New'){s.c_w(cn,ct+'-New',e);return'New';}else{s.c_w(cn,ct+'-Repeat',e);return'Repeat';}"),String.prototype.endsWith=function(e){var t=this.length-e.length;return 0<=t&&this.lastIndexOf(e)===t},t.getValOnce=new Function("v","c","e","t","var s=this,a=new Date,v=v?v:'',c=c?c:'s_gvo',e=e?e:0,i=t=='m'?60000:86400000,k=s.c_r(c);if(v){a.setTime(a.getTime()+e*i);s.c_w(c,v,e==0?0:a);}return v==k?'':v"),t.prop32=(1/6*a()).toFixed(2),t.prop32&&(t.eVar78="D=c32")}},trackerProperties:{}}},{modulePath:"adobe-analytics/src/lib/actions/setVariables.js",settings:{customSetup:{source:function(e,t){localStorage.setItem("pagename-counter",2);var n=mcDataLayer.pagename.split(":");t.pageName=_satellite.getVar("DE - Page Name"),t.prop1=_satellite.getVar("DE - Division"),t.prop1&&(t.eVar1="D=c1"),t.prop2=_satellite.getVar("DE - Site"),t.prop2&&(t.eVar2="D=c2"),t.channel=_satellite.getVar("DE - Channel"),t.prop3="D=ch",t.prop3&&(t.eVar3="D=ch"),3\n\n\n\n\n \n
\n
\n \n',language:"html"}}]},{id:"RL1808078735504d31960b0061aea8ce37",name:"Page Load - Heart Beat CNA Lifestyle",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/subdomain.js",settings:{subdomains:[{value:"cnalifestyle",valueIsRegex:!0}]}}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{
source:'\n\n\t\n\t\n \n\t\n\n',
language:"html"}}]},{id:"RL2bf5f9b6dd5c4d4d864e4f525821a74f",name:"Page Load - Neilson Channel NewsAsia",events:[{modulePath:"core/src/lib/events/pageBottom.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/subdomain.js",settings:{subdomains:[{value:"cnaluxury",valueIsRegex:!0},{value:"cnalifestyle",valueIsRegex:!0}]},negate:!0}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{source:'\n\n\n\n\n \n
\n
\n \n',language:"html"}}]},{id:"RLfffc3ba1be3a48e781e7905ccd0b4b3d",name:"Event - Endless Scroll PreBid",events:[{modulePath:"core/src/lib/events/entersViewport.js",settings:{frequency:"everyEntry",elementSelector:".article-endless-scroll-wrapper"},ruleOrder:50}],conditions:[],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!1,source:"https://assets.adobedtm.com/2926360f3839/c1ab5d4d2c4f/1f7520d57293/RC84f32be3c4ae4763aecfd2e17b306e24-source.min.js",language:"javascript",isExternal:!0}}]},{id:"RL9a325c23a32c473b9bee7c23a1080f6f",name:"Direct Call Rule - CNA Lifestyle",events:[{modulePath:"core/src/lib/events/directCall.js",settings:{identifier:"cnalpageview"},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/queryStringParameter.js",settings:{name:"view",value:"embedNoPageView"},negate:!0}],actions:[{modulePath:"adobe-analytics/src/lib/actions/setVariables.js",settings:{customSetup:{source:function(e,t){function n(){}function a(){if(!window.s_loadT){var e=(new Date).getTime(),t=window.performance?performance.timing:0,n=t?t.requestStart:window.inHeadTS||0;s_loadT=n?Math.round((e-n)/100):""}return s_loadT}t.loadModule("Media"),t.Media.autoTrack=!1,t.Media.trackMilestones="25,50,75,90",t.Media.segmentByMilestones=!0,t.Media.playerName="cna_online_ooyalaplayer",t.Media.trackWhilePlaying=!0,t.Media.trackUsingContextData=!0,t.Media.trackVars="events,eVar13,eVar21,eVar22,,eVar24,prop10",t.Media.trackEvents="event22,event23,event24,event10,event14,event16,event17,event90",t.Media.contextDataMapping={"a.media.name":"eVar13,prop10","a.media.playerName":"eVar22","a.media.segment":"eVar21","a.contentType":"eVar24","a.media.timePlayed":"event10","a.media.view":"event14","a.media.segmentView":"event17","a.media.complete":"event16","a.media.milestones":{25:"event22",50:"event23",75:"event24",90:"event90"}},t.usePlugins=!0,t.doPlugins=n,t.apl=new Function("l","v","d","u","var s=this,m=0;if(!l)l='';if(u){var i,n,a=s.split(l,d);for(i=0;i-1?i:l.length;a[x++]=l.substring(0,i);l=l.substring(i+d.length);}return a"),t.performanceTiming=new Function("v","var s=this;if(v)s.ptv=v;if(typeof performance!='undefined'){if(performance.timing.loadEventEnd==0){s.pi=setInterval(function(){s.performanceWrite()},250);}if(!s.ptc||s.linkType=='e'){s.performanceRead();}else{s.rfe();s[s.ptv]='';}}"),t.performanceWrite=new Function("","var s=this;if(performance.timing.loadEventEnd>0)clearInterval(s.pi);try{if(s.c_r('s_ptc')==''&&performance.timing.loadEventEnd>0){try{var pt=performance.timing;var pta='';pta=s.performanceCheck(pt.fetchStart,pt.navigationStart);pta+='^^'+s.performanceCheck(pt.domainLookupStart,pt.fetchStart);pta+='^^'+s.performanceCheck(pt.domainLookupEnd,pt.domainLookupStart);pta+='^^'+s.performanceCheck(pt.connectEnd,pt.connectStart);pta+='^^'+s.performanceCheck(pt.responseStart,pt.connectEnd);pta+='^^'+s.performanceCheck(pt.responseEnd,pt.responseStart);pta+='^^'+s.performanceCheck(pt.loadEventStart,pt.domLoading);pta+='^^'+s.performanceCheck(pt.loadEventEnd,pt.loadEventStart);pta+='^^'+s.performanceCheck(pt.loadEventEnd,pt.navigationStart);s.c_w('s_ptc',pta);if(sessionStorage&&navigator.cookieEnabled&&s.ptv!='undefined'){var pe=performance.getEntries();var tempPe='';for(var i=0;i-1?pe[i].name.split('?')[0]:pe[i].name;tempPe+='|'+(Math.round(pe[i].startTime)/1000).toFixed(1)+'|'+(Math.round(pe[i].duration)/1000).toFixed(1)+'|'+pe[i].initiatorType;}sessionStorage.setItem('s_pec',tempPe);}}catch(err){return;}}}catch(err){return;}"),t.performanceCheck=new Function("a","b","if(a>=0&&b>=0){if((a-b)<60000&&((a-b)>=0)){return((a-b)/1000).toFixed(2);}else{return 600;}}"),t.performanceRead=new Function("","var s=this;if(performance.timing.loadEventEnd>0)clearInterval(s.pi);var cv=s.c_r('s_ptc');if(s.pte){var ela=s.pte.split(',');}if(cv!=''){var cva=s.split(cv,'^^');if(cva[1]!=''){for(var x=0;x<(ela.length-1);x++){s.events=s.apl(s.events,ela[x]+'='+cva[x],',',2);}}s.events=s.apl(s.events,ela[ela.length-1],',',2);}s.linkTrackEvents=s.apl(s.linkTrackEvents,s.pte,',',2);s.c_w('s_ptc','',0);if(sessionStorage&&navigator.cookieEnabled&&s.ptv!='undefined'){s[s.ptv]=sessionStorage.getItem('s_pec');sessionStorage.setItem('s_pec','',0);}else{s[s.ptv]='sessionStorage Unavailable';}s.ptc=true;"),t.rfe=new Function("","var s=this;var ea=s.split(s.events,',');var pta=s.split(s.pte,',');try{for(x in pta){var ptr=new RegExp(pta[x]+'[^,][0-9]*.[0-9](.*)');s.events=s.events.match(ptr)[1];s.contextData['events']=s.events;}}catch(e){return;}"),t.getPercentPageViewed=new Function("n","var s=this,W=window,EL=W.addEventListener,AE=W.attachEvent,E=['load','unload','scroll','resize','zoom','keyup','mouseup','touchend','orientationchange','pan'];W.s_Obj=s;s_PPVid=(n=='-'?s.pageName:n)||s.pageName||location.href;if(!W.s_PPVevent){s.s_PPVg=function(n,r){var k='s_ppv',p=k+'l',c=s.c_r(n||r?k:p),a=c.indexOf(',')>-1?c.split(',',10):[''],l=a.length,i;a[0]=unescape(a[0]);r=r||(n&&n!=a[0])||0;a.length=10;if(typeof a[0]!='string')a[0]='';for(i=1;i<10;i++)a[i]=!r&&i0&&b>0?M.round(C*b/h):0,O=W.orientation,o=!isNaN(O)?M.abs(o)%180:Y>X?0:90,L=e=='load'||s_PPVi<1,a=s.s_PPVg(s_PPVid,L),V=function(i,v,f,n){i=parseInt(typeof a==J&&a.length>i?a[i]:'0')||0;v=typeof v!=N?i:v;v=f||v>i?v:i;return n?v:v>C?C:v<0?0:v};if(new RegExp('(iPod|iPad|iPhone)').exec(navigator.userAgent||'')&&o){o=x;x=y;y=o}o=o?'P':'L';a[9]=L?'':a[9].substring(0,1);s.c_w('s_ppv',escape(W.s_PPVid)+','+V(1,p,L)+','+(L||!V(2)?p:V(2))+','+V(3,b,L,1)+','+X+','+Y+','+x+','+y+','+r+','+a[9]+(a[9]==o?'':o))}if(!W.s_PPVt&&e!='unload')W.s_PPVt=setTimeout(W.s_PPVevent,333)};for(var f=W.s_PPVevent,i=0;ids&&dde||d=12){U=' PM';H=H-12;}if(H==0){H=12;}D=da[D];tm=H+':'+M+U;return(tm+'|'+D);}"),t.getNewRepeat=new Function("d","cn","var s=this,e=new Date(),cval,sval,ct=e.getTime();d=d?d:30;cn=cn?cn:'s_nr';e.setTime(ct+d*24*60*60*1000);cval=s.c_r(cn);if(cval.length==0){s.c_w(cn,ct+'-New',e);return'New';}sval=s.split(cval,'-');if(ct-sval[0]<30*60*1000&&sval[1]=='New'){s.c_w(cn,ct+'-New',e);return'New';}else{s.c_w(cn,ct+'-Repeat',e);return'Repeat';}"),String.prototype.endsWith=function(e){var t=this.length-e.length;return 0<=t&&this.lastIndexOf(e)===t},t.getValOnce=new Function("v","c","e","t","var s=this,a=new Date,v=v?v:'',c=c?c:'s_gvo',e=e?e:0,i=t=='m'?60000:86400000,k=s.c_r(c);if(v){a.setTime(a.getTime()+e*i);s.c_w(c,v,e==0?0:a);}return v==k?'':v"),t.prop32=(1/6*a()).toFixed(2),t.prop32&&(t.eVar78="D=c32")}},trackerProperties:{}}},{modulePath:"adobe-analytics/src/lib/actions/setVariables.js",settings:{customSetup:{source:function(e,t){try{localStorage.setItem("pagename-counter",2);var n=mcDataLayer.pagename.split(":");t.pageName=_satellite.getVar("DE - Page Name"),t.prop1=_satellite.getVar("DE - Division"),t.prop1&&(t.eVar1="D=c1"),t.prop2=_satellite.getVar("DE - Site New"),t.prop2&&(t.eVar2="D=c2"),t.channel=_satellite.getVar("DE - Channel"),t.prop3="D=ch",t.prop3&&(t.eVar3="D=ch"),3\nclass MediaElementAudioHB{\n constructor(audioObj, playerVersion){\n MediaElementAudioHB.audioObj = audioObj;\n MediaElementAudioHB.playerVersion = playerVersion;\n }\n loadLibrary() {\n if(typeof(ADB) === 'undefined') {\n if (window && window.console && window.console.warn) {\n console.warn('MediaHeartbeat exports are not found. Make sure to include the Launch library to index.html andconfigure Adobe Analytics for Video extension to export APIs to window object named \\\"ADB\\\".');\n return;\n }\n }\n \n \n \n MediaElementAudioHB.MediaHeartbeat = ADB.MediaHeartbeat;\n var MediaHeartbeatDelegate = ADB.MediaHeartbeatDelegate;\n var mediaDelegate = new MediaHeartbeatDelegate();\n mediaDelegate.getCurrentPlaybackTime = function() {\n return MediaElementAudioHB.audioObj.media.getCurrentTime();\n };\n // mediaDelegate.getQoSObject = function() {\n // return MediaElementAudioHB.MediaHeartbeat.createQoSObject(MediaElementAudioHB.audioObj.getCurrentBitrate(),audio.startuptime, audio.fps,audio.droppedframes);\n mediaDelegate.getQoSObject = function() {\n // return MediaElementAudioHB.MediaHeartbeat.createQoSObject(MediaElementAudioHB.audioObj.getBitratesAvailable()[0][\"bitrate\"], 0, 0, 0);\n return MediaElementAudioHB.MediaHeartbeat.createQoSObject(0, 0, 0, 0);\n };\n var config = {\n playerName: \"cna_online_podcastplayer\",\n ovp: \"podcast\",\n channel: \"Web\"\n };\n //var mediaHeartbeat;\n MediaElementAudioHB.MediaHeartbeat.getInstance(mediaDelegate,config).then(function(instance) {\n MediaElementAudioHB.mediaHeartbeat = instance;\n }).catch(function(err){\n console.log('Error:'+err)\n });\n }\n \n \n\n\tinit () {\n //var mediaElement = document.getElementsByTagName('audio')[0];\n var mediaElementID = MediaElementAudioHB.audioObj.container.id;\n console.log(mediaElementID);\n\t\tvar mediaElement = document.querySelector(\"#\"+mediaElementID+\" audio\");\n mediaElement.addEventListener('canplay',\n function(e){\n\n\t\t\ttry\n\t\t\t{\n\t\t\t \n\t\t\t console.log(\"canplay\");\n\t\t\tvar mediaID = MediaInfo.mediaid.toString();\n\t\t\tvar title = \"news_\"+MediaInfo.mediatitle;\n var audioType = MediaInfo.mediacategory;\n var mediaStreamType = MediaInfo.mediacategory == 'Live' ? MediaElementAudioHB.MediaHeartbeat.StreamType.LIVE : MediaElementAudioHB.MediaHeartbeat.StreamType.PODCAST;\n \n var mediaDuration = 0;\n if (MediaInfo.mediatitle == 'Headline News')\n\t\t\t\t mediaDuration = 0;\n\t\t\t else \n\t\t\t\t mediaDuration = parseInt(MediaElementAudioHB.audioObj.media.getDuration());\n \n // var mediaDuration = parseInt(MediaElementAudioHB.audioObj.media.getDuration());\n\t\t \tvar mediaObject = MediaElementAudioHB.MediaHeartbeat.createMediaObject(title, \n title,\n mediaDuration,\n mediaStreamType,\n \"Audio\");\n\t\t\tvar lotameid = _satellite.cookie.get('_cc_id');\n\t\t\t\n\t\t\t var customAudioMetadata = { \n \"a.contenttypenew\":\"cna_Free_\" + MediaInfo.mediacategory + \"_\" +(MediaInfo.mediatype),\n \"mcs.sdk4.custompagename\":mcDataLayer.pagename,\n \"mcs.sdk4.previouspage\":s.getPreviousValue(s.pageName, 'gpv_v9', ''),\n \"mcs.sdk4.videourl\":MediaInfo.mediaurl,\n \"mcs.sdk4.mediaseriesname\":MediaInfo.mediaseriestitle,\n \"mcs.sdk4.ssoid\":_satellite.cookie.get('UID'),\n \"mcs.sdk4.mediainfo\": \"cna:\"+MediaInfo.mediaid+\":\"+mediaDuration+\":F:\"+audioType+ \":NA:NA:NA:NA:NA:NA:NA:NA:NA\",\n \"mcs.sdk4.cxenseid\":_satellite.cookie.get('cX_P'),\n \"mcs.sdk4.lotameid\":lotameid,\n \"mcs.sdk4.houseid\":MediaInfo.referenceid,\n \"mcs.sdk4.mediatype\":MediaInfo.mediatype,\n \"mcs.sdk4.masrefid\":MediaInfo.masrefid\n };\n\t\t\t \n\t\t\t if(MediaElementAudioHB.mediaHeartbeat._heartbeat)\n\t\t\t {\n\t\t\t MediaElementAudioHB.mediaHeartbeat.trackComplete();\n MediaElementAudioHB.mediaHeartbeat.trackSessionEnd();\n\t\t\t }\n\t\t\t \n\t\t\t \n\t\t\t MediaElementAudioHB.mediaHeartbeat.trackSessionStart(mediaObject, customAudioMetadata);\n MediaElementAudioHB.mediaHeartbeat.trackPlay();\n\t\t\t \n \n\t\t\t}\n\t\t\t\n\t\t\tcatch(err){\n console.log('HB Error:'+err)\n }\n }, false);\n\t\t\n mediaElement.addEventListener('play',\n function(e){\n console.log('play');\n MediaElementAudioHB.mediaHeartbeat.trackPlay();\n }, false);\n \n mediaElement.addEventListener('pause',\n function(e){\n console.log('pause');\n MediaElementAudioHB.mediaHeartbeat.trackPause();\n }, false);\n \n mediaElement.addEventListener('playing',\n function(e){\n console.log('playing');\n MediaElementAudioHB.mediaHeartbeat.trackPlay();\n }, true);\n \n mediaElement.addEventListener('seeked',\n function(e){\n console.log('seeked');\n MediaElementAudioHB.mediaHeartbeat.trackEvent(ADB.MediaHeartbeat.Event.SeekComplete);\n }, false);\n \n mediaElement.addEventListener('seeking',\n function(e){\n console.log('seeking');\n MediaElementAudioHB.mediaHeartbeat.trackEvent(ADB.MediaHeartbeat.Event.SeekStart);\n }, false);\n \n mediaElement.addEventListener('ended',\n function(e){\n console.log('ended');\n MediaElementAudioHB.mediaHeartbeat.trackComplete();\n MediaElementAudioHB.mediaHeartbeat.trackSessionEnd();\n MediaElementAudioHB.myStreamingTag.stop();\n }, false);\n \n mediaElement.addEventListener('volumechange',\n function(e){\n console.log('volumechange');\n }, false);\n \n \n mediaElement.addEventListener('captionschange',\n function(e){\n console.log('captionschange');\n }, false);\n \n \n mediaElement.addEventListener('timeupdate',\n function(e){\n console.log('timeupdate');\n }, false);\n \n\t}\n\t\n \n}\n\n function omniLoad(audioObject,playerVersion){\n if ((null !== audioObject.media))\n {\n\t\twindow.audioObject = audioObject;\n\t\twindow.playerVersion = playerVersion;\n\t\t\n try{\n if(playerVersion == \"PC\") {\n \n console.log('calling Omni load function')\n MediaElementAudioHBOBJ = new MediaElementAudioHB(audioObject,playerVersion);\n MediaElementAudioHBOBJ.loadLibrary()\n\t\t\t\tMediaElementAudioHBOBJ.init();\n\t\n\t\t\t}\n\t\t\t\n\t\t\t\n }\n\t\t\tcatch(error) {\n console.log('Heartbeat Error:'+error)\n }\n } \n }\n\n",language:"html"}}]},{id:"RL07d9c9b1cbb545ce94d820b7f9d5bf34",name:"Page Load - Script Libraries (Top)",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:1}],conditions:[],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{source:'\n\n\n\n\n\n\n\n\n',language:"html"}},{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,
source:"(function(w,jQ,d){\n\n w.adTech = w.adTech || {};\n adTech.get = w.adTech.get || {};\n adTech.is = w.adTech.is || {};\n adTech.prebid = w.adTech.prebid || {};\n adTech.target = w.adTech.target || {};\n adTech.lotame = w.adTech.lotame || {};\n\n w.pbjs = w.pbjs || {}; \n w.pbjs.que = w.pbjs.que || [];\n\n w._brandmetrics = w._brandmetrics || [];\n\n //Added plugin to JQuery - Start\n \n jQ.fn.isOnScreen = function () {\n\n var win = jQ(window);\n\n var viewport = {\n top: win.scrollTop(),\n left: win.scrollLeft()\n };\n\n viewport.right = viewport.left + win.width();\n viewport.bottom = viewport.top + win.height();\n\n var bounds = this.offset();\n bounds.right = bounds.left + this.outerWidth();\n bounds.bottom = bounds.top + this.outerHeight();\n\n return (!(viewport.right < bounds.left || viewport.left > bounds.right || ( viewport.bottom + 150) < bounds.top || viewport.top > bounds.bottom));\n\n };\n\n jQ.fn.exists = function () {\n return this.length !== 0;\n };\n\n //Added plugin to JQuery - End\n\n adTech = {\n\n get : {\n portableDeviceSizes : {\n 'tablet': {\n 'width': {\n 'min': 768, \n 'max': 970\n }\n },\n 'mobile': {\n 'width': {\n 'min': 280, \n 'max': 768\n }\n }\n },\n subdomain : function() {\n return window.location.host.split('.')[0];\n },\n pathname: function() {\n return window.location.pathname;\n },\n params: function() {\n return new URLSearchParams(window.location.search);\n },\n viewPort : function() {\n\n var viewPortWidth;\n var viewPortHeight;\n \n if (typeof w.innerWidth !== 'undefined') {\n viewPortWidth = w.innerWidth;\n viewPortHeight = w.innerHeight;\n } else if (typeof d.documentElement !== 'undefined' && typeof d.documentElement.clientWidth !== 'undefined' && d.documentElement.clientWidth !== 0) {\n // IE6 in standards compliant mode (i.e. with a valid doctype as the first line in the document)\n viewPortWidth = d.documentElement.clientWidth;\n viewPortHeight = d.documentElement.clientHeight;\n } else {\n // older versions of IE\n viewPortWidth = d.getElementsByTagName('body')[0].clientWidth;\n viewPortHeight = d.getElementsByTagName('body')[0].clientHeight;\n }\n\n return {w: viewPortWidth, h: viewPortHeight};\n },\n\n googleAdSizes : function() {\n\n if (w.getViewport().w < 768) {\n return \"mobile\";\n } else if (w.getViewport().w >= 768 && w.getViewport().w <= 970) {\n return \"tablet\";\n } else {\n return \"desktop\";\n }\n },\n\n slotName : function(optionsAd) {\n \n var options2 = optionsAd;\n \n var slotName = '';\n // set networkCode\n slotName = options2.networkCode;\n // set Channel\n slotName += '/' + options2.adChannel;\n // set Section\n if (w.adSection) {\n slotName += '/' + w.adSection || options2.adSection;\n } else {\n slotName += '/' + options2.adSection;\n }\n // set Unit\n slotName += '/' + options2.adUnit;\n\n return slotName;\n },\n\n deviceType : function (width, height) {\n\n var deviceType = '', isPortableDevice = false, portableDevices = Object.keys(this.portableDeviceSizes);\n\n for (var i = 0; i < portableDevices.length; i++) {\n\n var device = this.portableDeviceSizes[portableDevices[i]];\n\n if ( (width >= device.width.min && width <= device.width.max)) {\n isPortableDevice = true;\n deviceType = portableDevices[i];\n break; \n }\n }\n\n if (!isPortableDevice) {\n return 'desktop';\n }\n\n var subDomains = ['beta-cnaluxury', 'beta-cnalifestyle', 'cnaluxury', 'cnalifestyle'];\n\n var currentSubdomain = this.subdomain();\n\n for (var x = 0 ; x < subDomains.length ; x++) {\n \n if (subDomains.includes(currentSubdomain) && deviceType === 'tablet') {\n\n deviceType = 'desktop';\n break;\n }\n }\n\n return deviceType;\n }\n },\n is : {\n pageSkin : function (width) {\n\n var pageSkin = \"false\";\n\n if ((w >= 1460) || (w >= 375 && w < 728)) {\n pageSkin = \"true\";\n }\n\n return pageSkin;\n },\n brandMetricsTriggered : false\n },\n prebid: {\n loadPreBid : function() {\n \n var totalTags = jQ('.advertisement__container').length;\n\n for ( var i = 0; i < totalTags; i++ ) {\n try {\n\n var a = jQ('.advertisement__container')[i];\n var elementValue = a.getAttribute('id');\n if (elementValue.indexOf('oop') > -1 || elementValue.indexOf('out_of_page') > -1) {\n continue;\n }\n\n var jsonObj = jQ.parseJSON($('#' + elementValue + '').parent().attr('data-js-options'));\n\n if (elementValue.indexOf(deviceType) > -1 || elementValue.indexOf('all-platforms') > -1) {\n this.loadBid(adTech.get.slotName(jsonObj), jsonObj.sizes, elementValue);\n }\n } catch (err) {\n console.log(\"ErrParse\" + err.message);\n }\n }\n },\n loadBid : function (invCode,sizes,code) {\n\n var tladunit = 'NA', tldevice = 'NA', tlinvCode = 'NA';\n\n var newInvCode = '.'+invCode.split('/').join('.');\n \n if (invCode.indexOf('leaderboard') > -1) {\n tladunit = 'lb';\n } else if (invCode.indexOf('imu') > -1) {\n tladunit = 'imu';\n }\n\n if (invCode.indexOf('mobile') > -1) {\n tldevice = 'mobile';\n } else {\n tldevice = 'desktop';\n }\n\n tlinvCode = 'cna_' + tldevice + '_' + tladunit;\n\n var adUnits = [];\n\n var inventoryCode = {\n triplelift: tlinvCode,\n appnexus: newInvCode\n }; \n\n if (code.indexOf('outstream') > -1) {\n\n // 1. Video (640,480)\n var adUnitVideoObj2 = new AdUnit('video', code, ['appnexus','unruly'], [640,480] , inventoryCode);\n adUnits.push(adUnitVideoObj2);\n\n // 2.Banners\n var adUnitBannerObj = new AdUnit('banner',code,['teads','appnexus','unruly'],[1,1], inventoryCode);\n adUnits.push(adUnitBannerObj);\n\n } else {\n\n var adUnitObj = new AdUnit('banner', code, ['appnexus','triplelift'], sizes, inventoryCode);\n adUnits.push(adUnitObj);\n\n }\n\n this.requestBid(adUnits); \n },\n requestBid : function (adUnits) {\n w.pbjs.que.push(function() {\n w.pbjs.adUnits = [];\n w.pbjs.addAdUnits(adUnits);\n w.pbjs.setConfig({ priceGranularity: \"dense\",enableSendAllBids: true,bidderSequence: \"random\"});\n w.pbjs.requestBids({\n bidsBackHandler: this.sendAdserverRequest\n });\n });\n },\n sendAdserverRequest : function() {\n \n if (w.pbjs.adserverRequestSent) {\n return;\n }\n\n w.pbjs.adserverRequestSent = true;\n \n w.googletag.cmd.push(function() {\n w.pbjs.que.push(function() {\n //pbjs.setTargetingForGPTAsync();\n /*pbjs.requestBids({\n bidsBackHandler: function() {\n pbjs.setTargetingForGPTAsync();\n //googletag.pubads().refresh();\n }\n });*/\n });\n });\n }\n },\n target: {\n set : {\n gptKeywords : function(metaElements) {\n\n var kwords = [];\n\n var pageType = \"detail page\", category = \"\", sub = \"\", sid = \"\", stitle = \"\";\n\n var metas = metaElements;\n\n for (i = 0; i < metas.length; i++) {\n\n if (metas[i].getAttribute(\"name\") == \"cXenseParse:mdc-keywords\") {\n //kwords = metas[i].getAttribute(\"content\");\n kwords.push(metas[i].getAttribute(\"content\"));\n }\n \n if (metas[i].getAttribute(\"property\") == \"og:title\") {\n stitle = metas[i].getAttribute(\"content\");\n }\n \n if (metas[i].getAttribute(\"property\") == \"og:url\") {\n var url = metas[i].getAttribute(\"content\");\n var urlArr = url.split(\"/\");\n\n for (j = 0; j < urlArr.length; j++) {\n\n if (urlArr[j] == \"news\") {\n\n category = urlArr[j + 1];\n\n if (category == \"business\") {\n sub = urlArr[j + 2];\n }\n break;\n }\n }\n }\n\n if (metas[i].getAttribute(\"name\") == \"cXenseParse:recs:articleid\") {\n\n sid = metas[i].getAttribute(\"content\");\n }\n }\n\n if (sid === '' && typeof w.mcDataLayer !== 'undefined') {\n sid = (typeof w.mcDataLayer.contentid !== 'undefined') ? w.mcDataLayer.contentid.toString() : '';\n }\n\n if (sub != \"\") {\n // console.log('[\"' + pageType + '\",\"' + category + '\",\"' + sub + '\",\"' + kwords + '\",\"' + sid + '\",\"' + stitle + '\"]');\n w.googletag.pubads().setTargeting(\"CNAKW\", [pageType, category, sub, kwords, sid, stitle]);\n } else {\n // console.log('[\"' + pageType + '\",\"' + category + '\",\"' + kwords + '\",\"' + sid + '\",\"' + stitle + '\"]');\n w.googletag.pubads().setTargeting(\"CNAKW\", [pageType, category, kwords, sid, stitle]);\n }\n },\n cnaContext: function(metaElements) {\n // console.log(\"getCNAContext\");\n \n //@TODO : return array of the content and remove googletag calls in here\n\n var metas = metaElements;\n\n var taxoArray1 = [];\n var taxoArray2 = [];\n var nerArray = [];\n var skArray = [];\n\n for (var i = 0; i < metas.length; i++) {\n\n var name = metas[i].getAttribute(\"name\");\n\n switch (name) {\n case \"cXenseParse:mdc-taxo\":\n var taxo = metas[i].getAttribute(\"content\");\n var taxoArr = taxo.split(\" >> \");\n\n if (taxoArray1.indexOf('\"' + taxoArr[0] + '\"') < 0) {\n taxoArray1.push(taxoArr[0]);\n }\n\n if (taxoArr.length > 1) {\n if (taxoArray2.indexOf('\"' + taxoArr[1] + '\"') < 0) {\n var t1 = taxoArr[1].replace(\" ++\", \"\").replace(\" --\", \"\");\n taxoArray2.push(t1);\n }\n }\n break;\n case \"cXenseParse:mdc-ner\":\n nerArray.push(metas[i].getAttribute(\"content\"));\n break;\n case \"cXenseParse:mdc-sk\":\n skArray.push(metas[i].getAttribute(\"content\"));\n break;\n default:\n break;\n }\n\n }\n\n if (taxoArray1.toString() !== \"\") {\n w.googletag.pubads().setTargeting(\"CNATAXO1\", [taxoArray1]);\n }\n\n if (taxoArray2.toString() !== \"\") {\n w.googletag.pubads().setTargeting(\"CNATAXO2\", [taxoArray2]);\n }\n\n if (nerArray.toString() !== \"\") {\n w.googletag.pubads().setTargeting(\"CNANER\", [nerArray]);\n }\n\n if (skArray.toString() !== \"\") {\n w.googletag.pubads().setTargeting(\"CNASK\", [skArray]);\n }\n },\n dynamic: function(targetKeys, ids, callback) {\n\n if (typeof ids === 'undefined') {\n return;\n }\n\n var keyValueTargets = {\n 'beta' : {\n set : function () {\n if (window.location.host.indexOf(\"beta\") > -1) {\n return [['beta', 'true']];\n }\n }\n },\n 'brand-metrics': {\n set : function() {\n \n if (adTech.is.brandMetricsTriggered) {\n return;\n }\n\n w._brandmetrics.push({\n cmd:\"_querySurvey\", val: {\n callback: function (surveyAvailable, survey) {\n\n window._satellite.logger.info('*** brandmetrics callback initiated ***');\n\n hasSurvey = 'no';\n \n if (surveyAvailable) {\n hasSurvey = 'yes';\n }\n\n window.googletag.pubads().setTargeting(\"bms\", hasSurvey);\n }\n }\n });\n\n adTech.is.brandMetricsTriggered = true;\n\n }\n },\n 'adtechpre' : {\n set : function() {\n\n var adtechpre = (typeof adTech.get.params().get('adtechpre') !== 'undefined' || adTech.get.params().get('adtechpre') !== null) ? adTech.get.params().get('adtechpre') : \"\";\n \n if (adtechpre !== \"\") {\n return [['atp', adTech.get.params().get('adtechpre')]];\n }\n }\n },\n 'video' : {\n set : function () {\n\n var videoExists = 'false';\n\n if (jQ(\"meta[name='article:video']\").attr('content') != undefined) {\n videoExists = $(\"meta[name='article:video']\").attr('content');\n }\n\n return [ [\"article:video\", videoExists] ]; \n }\n },\n 'gs' : {\n set : function () {\n var gsChannelsString = '';\n \n if ( typeof gs_channels != \"undefined\") {\n gsChannelsString = gs_channels.join();\n }\n return [ ['gs_cat', gsChannelsString] ];\n }\n },\n 'adomik' : {\n set : function () {\n if (typeof w.Adomik != \"undefined\") {\n return [ ['ad_group', w.Adomik.randomAdGroup()] , ['ad_h', (new Date).getUTCHours().toString()] ];\n }\n }\n },\n 'me' : {\n set : function () {\n var targetingKeysCookie = _satellite.cookie.get('adtechTargetingKeys') || '';\n var targetingKeys = targetingKeysCookie.split('--');\n return [[ 'meid', _satellite.cookie.get(\"UID\")], ['meid_seg', targetingKeys.join(',')]];\n }\n },\n 'lotame' : {\n set : function () {\n if (ids.lotame != null) {\n\n var lotameObj = ( w['lotame_' + ids.lotame] !== undefined) ? true : false ;\n\n if (lotameObj) {\n\n var lotame = w['lotame_' + ids.lotame]; \n\n if (typeof lotame.profileId !== 'undefined' && typeof lotame.audienceString !== \"undefined\") {\n return [\n [ 'UID' , w['lotame_' + ids.lotame].profileId ], \n ['lotameid' , w['lotame_' + ids.lotame].audienceString ]\n ];\n } else {\n return [\n ['UID' , w.localStorage.getItem('_cc_id')], \n ['lotameid' , w.localStorage.getItem('lotame_' + ids.lotame + '_auds')]\n ];\n }\n\n }\n } \n }\n },\n 'in_skin' : {\n set : function () {\n return [[\"inskin_yes\", w.fn_pageskin]];\n }\n },\n 'content' : {\n set : function () {\n\n if (typeof mcDataLayer != \"undefined\" ) {\n\n if (mcDataLayer.contentid !== 'NA' && mcDataLayer.contentname !== 'NA' ) {\n return [['c_id', [mcDataLayer.contentid]], ['c_title' , [mcDataLayer.contentname]]];\n }\n\n } else {\n\n if (d.getElementsByName('cXenseParse:recs:id')[0] != undefined && d.querySelector('meta[name~=\"description\"]') != undefined) {\n\n return [\n ['c_id', d.getElementsByName('cXenseParse:recs:id')[0].content], \n ['c_title', d.querySelector('meta[name~=\"description\"]').content]\n ];\n } \n }\n }\n }\n };\n\n var targets = []; \n\n if (targetKeys !== null) {\n targets = targetKeys;\n } else {\n targets = Object.keys(keyValueTargets);\n }\n\n var keyValueReturn = {};\n\n for (var i = 0 ; i < targets.length ; i++) {\n\n var selection = targets[i];\n\n if (typeof keyValueTargets[selection].set() !== 'undefined') {\n keyValueReturn[selection] = keyValueTargets[selection].set();\n }\n\n }\n\n callback(keyValueReturn); \n }\n }\n },\n manage: {\n intervalID : null,\n interval: function(flag, func, time) {\n if (flag) {\n this.intervalID = setInterval(function(){\n func();\n },time);\n //_satellite.logger.log('running : ' + this.intervalID);\n } else {\n clearInterval(this.intervalID);\n //_satellite.logger.log('stopping : ' + this.intervalID);\n }\n },\n adSlots : {\n /**\n * Custom implementation as a fallback to destroy certain ad slots\n * @param NodeList containers divs, style, js containers\n * @return false \n */\n destroy : function(containers) {\n\n if (typeof containers === 'undefined') {\n throw 'ad containers is required';\n }\n\n if (containers.length < 1) {\n _satellite.logger.info('*** No ads to destory ***');\n }\n\n for (var i = 0 ; i < containers.length ; i++) {\n\n try {\n\n containers[i].remove();\n\n } catch(e) {\n\n _satellite.logger.warn('error removing - ' + containers[i].id);\n _satellite.logger.warn(e);\n\n }\n\n }\n\n }\n }\n },\n lotame: {\n data: function () {\n\n var pageTitle, contentId, pageContext, pageKeywords;\n\n if (typeof w.mcDataLayer !== 'undefined') {\n\n pageTitle = (w.mcDataLayer.contentname !== null) ? w.mcDataLayer.contentname : \"\";\n\n contentId = (w.mcDataLayer.contentid !== null) ? w.mcDataLayer.contentid : \"\";\n\n pageKeywords = (w.mcDataLayer.cmKeywords !== null) ? w.mcDataLayer.cmKeywords.split(',') : \"\";\n\n } else {\n \n\n pageTitle = ( typeof d.querySelector('meta[name~=\"cXenseParse:mdc-title\"]') !== 'undefined' && d.querySelector('meta[name~=\"cXenseParse:mdc-title\"]') !== null ) ? d.querySelector('meta[name~=\"cXenseParse:mdc-title').content : \"\";\n\n contentId = ( typeof d.querySelector('meta[name~=\"cXenseParse:recs:articleid\"]') !== 'undefined' && d.querySelector('meta[name~=\"cXenseParse:recs:articleid\"]') !== null ) ? d.querySelector('meta[name~=\"cXenseParse:recs:articleid').content : \"\";\n\n pageKeywords = (typeof d.querySelector('meta[name~=\"keywords\"]') !== 'undefined' && d.querySelector('meta[name~=\"keywords\"]') !== null ) ? d.querySelector('meta[name~=\"keywords\"]').content.split(',') : [];\n\n }\n\n pageContext = ( typeof d.querySelector('meta[name~=\"cXenseParse:mdc-context\"]') !== 'undefined' && d.querySelector('meta[name~=\"cXenseParse:mdc-context\"]') !== null ) ? d.querySelector('meta[name~=\"cXenseParse:mdc-context').content : \"\";\n\n\n var newLotameData = {\n behaviors: {\n int: []\n },\n ruleBuilder: {}\n };\n\n if (pageTitle !== \"\") {\n newLotameData.behaviors.int.push('channelnewsasia.com : Title : ' + pageTitle);\n newLotameData.ruleBuilder.title = [pageTitle];\n }\n\n if (contentId !== \"\") {\n newLotameData.ruleBuilder.id = [contentId];\n }\n\n if (pageContext !== \"\") {\n newLotameData.behaviors.int.push('channelnewsasia.com : Context : ' + pageContext);\n newLotameData.ruleBuilder.context = [pageContext];\n }\n\n if (pageKeywords.length > 0) {\n\n newLotameData.ruleBuilder.keywords = pageKeywords;\n\n pageKeywords.map( function(pagekeyword) {\n var keyword = 'channelnewsasia.com : Keyword : ' + pagekeyword .trim();\n newLotameData.behaviors.int.push(keyword); \n });\n }\n\n return newLotameData;\n }\n }\n };\n\n // *** PREBID HELPER - START *** //\n function Bidder (bidderName, inventoryCode, skippable) {\n\n if (bidderName === 'appnexus' && typeof inventoryCode.appnexus === 'undefined') {\n throw 'Inventory Code is required for appnexus';\n }\n\n if (bidderName === 'triplelift' && typeof inventoryCode.triplelift === 'undefined') {\n throw 'Inventory Code is required for triplelift';\n }\n\n var config = {\n skippable: true,\n playback_method: ['auto_play_sound_off']\n };\n\n var _PARAMS = {\n teads: {\n placementId: '124370',\n pageId: '114505'\n },\n appnexus: {\n member: '9261'\n },\n unruly : {\n targetingUUID: '3507307e-4a83-4f66-bf83-590c8de6bb0b',\n siteId: '1159382'\n },\n triplelift : {}\n };\n\n if (bidderName === 'appnexus') {\n _PARAMS.appnexus.invCode = inventoryCode.appnexus;\n }\n\n if (bidderName === 'triplelift') {\n _PARAMS.triplelift.inventoryCode = inventoryCode.triplelift;\n }\n\n this.bidder = bidderName;\n this.params = _PARAMS[bidderName];\n\n if (skippable) {\n this.params.video = config;\n }\n }\n\n function AdUnit (mediaType, element, bidders, size, invCode) {\n\n var TYPES = {\n video : {\n context: 'outstream',\n playerSize: [size]\n },\n banner : {\n sizes: size\n }\n };\n\n this.code = element;\n this.mediaTypes = {};\n\n var bids = [];\n\n bidders.forEach( function(bidder) {\n\n var bidderObj;\n\n try {\n\n if ( (bidder === 'appnexus' || bidder === 'unruly') && mediaType === 'video') {\n\n bidderObj = new Bidder(bidder, invCode, true); //skippable\n \n } else {\n \n bidderObj = new Bidder(bidder, invCode);\n }\n } catch (e) {\n\n console.log(e);\n }\n\n if (bidderObj !== null) {\n\n bids.push(bidderObj);\n }\n });\n\n this.bids = bids;\n\n this.mediaTypes[mediaType] = TYPES[mediaType];\n\n // Add Default Video Renderer\n if (mediaType === 'video') { \n\n this.renderer = {\n url: 'https://acdn.adnxs.com/video/outstream/ANOutstreamVideo.js',\n backupOnly: true, // prefer demand renderer\n render: function (bid) {\n adResponse = {\n ad: {\n video: {\n content: bid.vastXml,\n player_height: bid.playerHeight,\n player_width: bid.playerWidth\n }\n }\n };\n\n // push to render queue because ANOutstreamVideo may not be loaded yet.\n bid.renderer.push( function() {\n ANOutstreamVideo.renderAd({\n targetId: bid.adUnitCode, // target div id to render video.\n adResponse: adResponse\n });\n });\n }\n };\n }\n }\n // *** PREBID HELPER - END *** //\n\n})(window,$,document);",language:"javascript"}},{modulePath:"core/src/lib/actions/customCode.js",settings:{
source:'\n \n \n \n \n\n\n\n',language:"html"}},{modulePath:"core/src/lib/actions/customCode.js",settings:{source:'',language:"html"}}]},{id:"RLcac8bd56093848e785c1cb72c2305f8b",name:"Page Load - Ads ",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:50}],conditions:[],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{
source:'\n\n',
language:"html"}},{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"var PREBID_TIMEOUT = 1000;\n\nsetTimeout(function() {\n\tadTech.prebid.sendAdserverRequest();\n}, PREBID_TIMEOUT);",language:"javascript"}},{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"(function(){\n\n var viewPortWidth = document.getElementsByTagName('html')[0].clientWidth;\n var viewPortHeight = document.getElementsByTagName('html')[0].clientHeight;\n\n var deviceUsed = window.deviceType = adTech.get.deviceType(viewPortWidth,viewPortHeight);\n\n setTimeout(function() {\n adTech.prebid.loadPreBid();\n }, 1600);\n\n window.adArray = [];\n\n var el;\n var ad;\n var advertisementId = '';\n var adSizeMapping;\n var adInitialized = false;\n var wasSticked = 0;\n var stickyInterval;\n var rootElement;\n var header;\n var headerHeight = 0;\n var nextContentDiv;\n\n var pageskin = window.fn_pageskin = adTech.is.pageSkin(window.innerWidth); //backfall window obj\n\n\nvar isPaused = false;\nvar ads = [];\nvar trggeredAds = [];\nvar slots = {};\nvar gsChannelsString = \"NA\";\nvar eventSet = 0;\n\n\nvar animate = function () {\n\n if (!isPaused) {\n\n // Get the length of the container\n var containerLength = $('.advertisement__container').length; // Note: this keeps changing as DOM is parsed\n\n for (var i = 0; i < containerLength; i++) {\n\n isPaused = true;\n \n var elementValue = $('.advertisement__container')[i].getAttribute('id');\n \n // Check if ad has been served\n if (ads.indexOf(elementValue) > -1) {\n continue;\n }\n\n if (typeof googletag === 'undefined') {\n continue;\n }\n \n if (elementValue.indexOf(deviceUsed) <= -1 && elementValue.indexOf('all-platforms') <= -1) {\n continue;\n }\n\n if (!$('#' + elementValue + '').isOnScreen()) {\n continue; \n }\n\n if ($('#' + elementValue + '').length <= 0 && $('#' + elementValue + '').children().length > 0) {\n continue;\n }\n\n var jsonObj = $.parseJSON($('#' + elementValue + '').parent().attr('data-js-options')); \n\n //var fid = new ClientJS().getFingerprint();\n var fid = \"NA\"; \n // videoexists = \"false\";\n /*if (typeof(Storage) !== \"undefined\") {\n fid = localStorage.getItem(\"fid\");\n }*/\n\n if (typeof(Fingerprint) != \"undefined\") {\n //fid = new Fingerprint().get();\n }\n\n window.googletag.cmd.push( function() {\n\n googletag.pubads().collapseEmptyDivs();\n\n googletag.pubads().addEventListener('slotRenderEnded', function(event) {\n var slot = event.slot;\n var adunitvalue = slot.getSlotElementId();\n if (adunitvalue.indexOf('outstream') > -1 && event.isEmpty) {\n $('#' + slot.getSlotElementId() + '').parent().attr('style','display:none');\n }\n });\n\n if (typeof gs_channels != \"undefined\") {\n gsChannelsString = gs_channels.join();\n }\n \n // *** NEW TARGETING - START *** //\n var identifiers = {\n 'lotame' : '5226'\n };\n\n adTech.target.set.dynamic(null, identifiers, function (targetObj) {\n\n if (typeof targetObj != 'undefined' && targetObj !== null) {\n\n Object.keys(targetObj).map(function (key) {\n\n targetObj[key].forEach( function (element) {\n googletag.pubads().setTargeting(element[0], element[1]);\n });\n\n });\n } \n });\n \n var metas = document.getElementsByTagName('meta');\n\n adTech.target.set.gptKeywords(metas);\n\n adTech.target.set.cnaContext(metas);\n\n // *** NEW TARGETING - END *** //\n \n if (elementValue.indexOf('out_of_page') > -1) {\n\n //window.adArray[window.adArray.length] = window.googletag.defineOutOfPageSlot(jsonObj.networkCode+'/'+jsonObj.adChannel+'/'+jsonObj.adSection+'/'+jsonObj.adUnit, jsonObj.sizes, elementValue ).addService(window.googletag.pubads());\n window.adArray[window.adArray.length] = window.googletag.defineOutOfPageSlot(adTech.get.slotName(jsonObj), elementValue).addService(window.googletag.pubads());\n \n googletag.pubads().enableSingleRequest();\n \n googletag.enableServices();\n \n if (window.location.href.indexOf('cnalifestyle.') > -1 || window.location.href.indexOf('cnaluxury.') > -1) {\n window.googletag.display(elementValue);\n }\n\n } else {\n\n if (elementValue.indexOf(jsonObj.adUnit) > -1) {\n //window.adArray[window.adArray.length] = window.googletag.defineSlot(jsonObj.networkCode+'/'+jsonObj.adChannel+'/'+jsonObj.adSection+'/'+jsonObj.adUnit, jsonObj.sizes, elementValue ).addService(window.googletag.pubads());\n \n if (elementValue.startsWith('ad-desktop-tablet-leaderboard1-sticky-') && pbjs.getAdserverTargetingForAdUnitCodeStr('ad-desktop-tablet-leaderboard1-sticky') != \"\") {\n\n slots[elementValue] = window.googletag.defineSlot(adTech.get.slotName(jsonObj), jsonObj.sizes, elementValue).addService(window.googletag.pubads()); \n \n adTech.manage.interval(false);\n \n var lbpbid = pbjs.getAdserverTargetingForAdUnitCode('ad-desktop-tablet-leaderboard1-sticky');\n \n for ( var i = 0;i < Object.keys(lbpbid).length; i++ ) {\n slots[elementValue].setTargeting(Object.keys(lbpbid)[i],Object.values(lbpbid)[i]).setCollapseEmptyDiv(true);\n }\n\n } else {\n \n window.adArray[window.adArray.length] = window.googletag.defineSlot(adTech.get.slotName(jsonObj), jsonObj.sizes, elementValue).addService(window.googletag.pubads()).setCollapseEmptyDiv(true);\n \n adTech.manage.interval(false);\n \n pbjs.setTargetingForGPTAsync(elementValue);\n\n }\n\n //googletag.pubads().enableSingleRequest();\n //googletag.pubads().enableAsyncRendering() \n \n if (jsonObj.adChannel == \"cna_mobileweb\" && jsonObj.adUnit == \"imu1\" && elementValue != \"ad-imu1-mobile-news-story\") {\n googletag.pubads().setTargeting('infinitescroll', 'true');\n }\n\n window.googletag.pubads().enableSingleRequest();\n \n window.googletag.enableServices();\n \n window.googletag.display(elementValue);\n\n trggeredAds.push(ads[ads.length-1]);\n \n adTech.manage.interval(true, animate, 100);\n\n }\n \n }\n\n ads.push(elementValue);\n\n // *** Clear targeting keys, except for brandmetrics ***//\n \n var keys = googletag.pubads().getTargetingKeys();\n\n keys.forEach( function(key) {\n if (key !== 'bms') {\n googletag.pubads().clearTargeting(key);\n }\n });\n\n });\n\n }\n \n isPaused = false; \n\n }\n \n};\n\nsetTimeout(function() {\n adTech.manage.interval(true, animate, 100);\n}, 2400);\n\n})();",language:"javascript"}}]},{id:"RL8797814073df43ab89d234c778ad4aca",name:"Page Load - Script Bottom",events:[{modulePath:"core/src/lib/events/pageBottom.js",settings:{},ruleOrder:50}],conditions:[],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{source:'\n\n\n\n\n\n\n\n \n \n\n\n\n\n\n\n\n\n
\n
\n \n\n\n\n\n\n',language:"html"}}]},{id:"RL8a944a94e2a94b9695c5f80c71e7d5d0",name:"Event - Podcast Transcript",events:[{modulePath:"core/src/lib/events/click.js",settings:{elementSelector:"#podcast-transcript",bubbleFireIfParent:!0,bubbleFireIfChildFired:!0},ruleOrder:50}],conditions:[],actions:[{modulePath:"adobe-analytics/src/lib/actions/sendBeacon.js",settings:{type:"link",linkName:"CNA(Web) - Custom Event(PodcastTranscript)",linkType:"o"}}]},{id:"RLedff06520c9d4f398ab0977e4e3d12b0",name:"Page Load - Search Results",events:[{modulePath:"core/src/lib/events/windowLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/pathAndQuerystring.js",settings:{paths:[{value:"/search",valueIsRegex:!0}]}},{modulePath:"core/src/lib/conditions/subdomain.js",settings:{subdomains:[{value:"cnalifestyle",valueIsRegex:!0},{value:"cnaluxury",valueIsRegex:!0}]},negate:!0}],actions:[{modulePath:"adobe-analytics/src/lib/actions/setVariables.js",settings:{customSetup:{source:function(e,t){console.log("Page View Rule"),localStorage.setItem("pagename-counter",2);var n=mcDataLayer.pagename.split(":");t.pageName=_satellite.getVar("DE - Page Name"),t.prop1=_satellite.getVar("DE - Division"),t.prop1&&(t.eVar1="D=c1"),t.prop2=_satellite.getVar("DE - Site New"),t.prop2&&(t.eVar2="D=c2"),t.channel=_satellite.getVar("DE - Channel"),t.prop3="D=ch",t.prop3&&(t.eVar3="D=ch"),3\n /* Copyright (c) 2017 comScore, Inc. * All rights reserved. * By using this software, you are agreeing to be bound by the * terms of these policies: http://www.comscore.com/About_comScore/Privacy_Policy */ ! function(a, b) { "use strict"; "function" == typeof define && define.amd ? (b(a.ns_ = a.ns_ || {}), define([], function() { return a.ns_ })) : "object" == typeof module && module.exports ? module.exports = b({}) : b(a.ns_ = a.ns_ || {}) }(this, function(a) { "use strict"; a.ns_ = a; var b = b || {}; b.indexOf = function(a, b) { var c = -1; return this.forEach(b, function(b, d) { b == a && (c = d) }), c }, b.forEach = function(a, b, c) { try { if ("function" == typeof b) if (c = "undefined" != typeof c ? c : null, "number" != typeof a.length || "undefined" == typeof a[0]) { var d = "undefined" != typeof a.__proto__; for (var e in a) a.hasOwnProperty(e) && (!d || d && "undefined" == typeof a.__proto__[e]) && "function" != typeof a[e] && b.call(c, a[e], e) } else for (var f = 0, g = a.length; f < g; f++) b.call(c, a[f], f) } catch (h) {} }; var b = b || {}; b.parseBoolean = function(a, b) { return b = b || !1, a ? "0" != a : b }, b.parseInteger = function(a, b) { return null == a || isNaN(a) ? b || 0 : parseInt(a) }, b.parseLong = function(a, b) { var c = Number(a); return null == a || isNaN(c) ? b || 0 : c }, b.toString = function(a) { if ("undefined" == typeof a) return "undefined"; if ("string" == typeof a) return a; if (a instanceof Array) return a.join(","); var b = ""; for (var c in a) a.hasOwnProperty(c) && (b += c + ":" + a[c] + ";"); return b || a.toString() }; var b = b || {}; b.filter = function(a, b) { var c = {}; for (var d in b) b.hasOwnProperty(d) && a(b[d]) && (c[d] = b[d]); return c }, b.extend = function(a) { var b, c = arguments.length; a = a || {}; for (var d = 1; d < c; d++) if (b = arguments[d]) for (var e in b) b.hasOwnProperty(e) && (a[e] = b[e]); return a }; var b = b || {}; b.cloneObject = function(a) { if (null == a || "object" != typeof a) return a; var b = function() { function a() {} function b(b) { return "object" == typeof b ? (a.prototype = b, new a) : b } function c(a) { for (var b in a) a.hasOwnProperty(b) && (this[b] = a[b]) } function d() { this.copiedObjects = []; var a = this; this.recursiveDeepCopy = function(b) { return a.deepCopy(b) }, this.depth = 0 } function e(a, b) { var c = new d; return b && (c.maxDepth = b), c.deepCopy(a) } function f(a) { return "undefined" != typeof window && window && window.Node ? a instanceof Node : "undefined" != typeof document && a === document || "number" == typeof a.nodeType && a.attributes && a.childNodes && a.cloneNode } var g = []; return c.prototype = { constructor: c, canCopy: function() { return !1 }, create: function(a) {}, populate: function(a, b, c) {} }, d.prototype = { constructor: d, maxDepth: 256, cacheResult: function(a, b) { this.copiedObjects.push([a, b]) }, getCachedResult: function(a) { for (var b = this.copiedObjects, c = b.length, d = 0; d < c; d++) if (b[d][0] === a) return b[d][1] }, deepCopy: function(a) { if (null === a) return null; if ("object" != typeof a) return a; var b = this.getCachedResult(a); if (b) return b; for (var c = 0; c < g.length; c++) { var d = g[c]; if (d.canCopy(a)) return this.applyDeepCopier(d, a) } throw new Error("Unable to clone the following object " + a) }, applyDeepCopier: function(a, b) { var c = a.create(b); if (this.cacheResult(b, c), this.depth++, this.depth > this.maxDepth) throw new Error("Maximum recursion depth exceeded."); return a.populate(this.recursiveDeepCopy, b, c), this.depth--, c } }, e.DeepCopier = c, e.deepCopiers = g, e.register = function(a) { a instanceof c || (a = new c(a)), g.unshift(a) }, e.register({ canCopy: function() { return !0 }, create: function(a) { return a instanceof a.constructor ? b(a.constructor.prototype) : {} }, populate: function(a, b, c) { for (var d in b) b.hasOwnProperty(d) && (c[d] = a(b[d])); return c } }), e.register({ canCopy: function(a) { return a instanceof Array }, create: function(a) { return new a.constructor }, populate: function(a, b, c) { for (var d = 0; d < b.length; d++) c.push(a(b[d])); return c } }), e.register({ canCopy: function(a) { return a instanceof Date }, create: function(a) { return new Date(a) } }), e.register({ canCopy: function(a) { return f(a) }, create: function(a) { return "undefined" != typeof document && a === document ? document : a.cloneNode(!1) }, populate: function(a, b, c) { if ("undefined" != typeof document && b === document) return document; if (b.childNodes && b.childNodes.length) for (var d = 0; d < b.childNodes.length; d++) { var e = a(b.childNodes[d]); c.appendChild(e) } } }), { deepCopy: e } }(); return b.deepCopy(a) }; var b = b || {}; b.getNamespace = function() { return a.ns_ || a }, b.uid = function() { var a = 1; return function() { return +new Date + "_" + a++ } }(), b.isEmpty = function(a) { return void 0 === a || null === a || "" === a || a instanceof Array && 0 === a.length }, b.isNotEmpty = function(a) { return !this.isEmpty(a) }, b.safeGet = function(a, b) { return b = this.exists(b) ? b : "", this.exists(a) ? a : b }, b.isTrue = function(a) { return "undefined" != typeof a && ("string" == typeof a ? (a = a.toLowerCase(), "true" === a || "1" === a || "on" === a) : !!a) }, b.regionMatches = function(a, b, c, d, e) { if (b < 0 || d < 0 || b + e > a.length || d + e > c.length) return !1; for (; --e >= 0;) { var f = a.charAt(b++), g = c.charAt(d++); if (f != g) return !1 } return !0 }, b.exists = function(a) { return "undefined" != typeof a && null != a }, ! function() { var a = [], c = !1, d = !0, e = 1e3; b.onSystemClockJump = function(b, f) { a.push(b), c || (c = !0, e = f || e, d = +new Date, setInterval(function() { var b = d + e, c = +new Date; d = c; var f = c - b; if (Math.abs(f) > e) for (var g = 0; g < a.length; ++g) a[g](f > 0) }, e)) } }(); var b = b || {}; b.hasPageVisibilityAPISupport = function() { if ("undefined" == typeof document) return !1; var a = !1; return "undefined" != typeof document.hidden ? a = !0 : "undefined" != typeof document.mozHidden ? a = !0 : "undefined" != typeof document.msHidden ? a = !0 : "undefined" != typeof document.webkitHidden && (a = !0), function() { return a } }(), b.getPageVisibilityAPI = function() { if ("undefined" == typeof document) return null; var a, b, c; "undefined" != typeof document.hidden ? (a = "hidden", b = "visibilitychange", c = "visibilityState") : "undefined" != typeof document.mozHidden ? (a = "mozHidden", b = "mozvisibilitychange", c = "mozVisibilityState") : "undefined" != typeof document.msHidden ? (a = "msHidden", b = "msvisibilitychange", c = "msVisibilityState") : "undefined" != typeof document.webkitHidden && (a = "webkitHidden", b = "webkitvisibilitychange", c = "webkitVisibilityState"); var d = { hidden: a, visibilityChange: b, state: c }; return function() { return d } }(), b.isTabInBackground = function() { if ("undefined" == typeof document) return null; var a = b.getPageVisibilityAPI(); return function() { return document[a.hidden] } }(), b.getBrowserName = function() { if (!navigator) return ""; var a, b, c = navigator.userAgent || "", d = navigator.appName || ""; return (b = c.indexOf("Opera")) != -1 || (b = c.indexOf("OPR/")) != -1 ? d = "Opera" : (b = c.indexOf("Android")) != -1 ? d = "Android" : (b = c.indexOf("Chrome")) != -1 ? d = "Chrome" : (b = c.indexOf("Safari")) != -1 ? d = "Safari" : (b = c.indexOf("Firefox")) != -1 ? d = "Firefox" : (b = c.indexOf("IEMobile")) != -1 ? d = "Internet Explorer Mobile" : "Microsoft Internet Explorer" == d || "Netscape" == d ? d = "Internet Explorer" : (a = c.lastIndexOf(" ") + 1) < (b = c.lastIndexOf("/")) ? (d = c.substring(a, b), d.toLowerCase() == d.toUpperCase() && (d = navigator.appName)) : d = "unknown", d }, b.getBrowserFullVersion = function() { if (!navigator) return ""; var a, b, c, d, e = navigator.userAgent || "", f = navigator.appName || "", g = navigator.appVersion ? "" + parseFloat(navigator.appVersion) : ""; return (b = e.indexOf("Opera")) != -1 ? (g = e.substring(b + 6), (b = e.indexOf("Version")) != -1 && (g = e.substring(b + 8))) : (b = e.indexOf("OPR/")) != -1 ? g = e.substring(b + 4) : (b = e.indexOf("Android")) != -1 ? g = e.substring(b + 11) : (b = e.indexOf("Chrome")) != -1 ? g = e.substring(b + 7) : (b = e.indexOf("Safari")) != -1 ? (g = e.substring(b + 7), (b = e.indexOf("Version")) != -1 && (g = e.substring(b + 8))) : (b = e.indexOf("Firefox")) != -1 ? g = e.substring(b + 8) : "Microsoft Internet Explorer" == f ? (d = new RegExp("MSIE ([0-9]{1,}[.0-9]{0,})"), null != d.exec(e) && (g = parseFloat(RegExp.$1))) : "Netscape" == f ? (d = new RegExp("Trident/.*rv:([0-9]{1,}[.0-9]{0,})"), null != d.exec(e) && (g = parseFloat(RegExp.$1))) : g = e.lastIndexOf(" ") + 1 < (b = e.lastIndexOf("/")) ? e.substring(b + 1) : "unknown", g = g.toString(), (c = g.indexOf(";")) != -1 && (g = g.substring(0, c)), (c = g.indexOf(" ")) != -1 && (g = g.substring(0, c)), (c = g.indexOf(")")) != -1 && (g = g.substring(0, c)), a = parseInt("" + g, 10), isNaN(a) && (g = "" + parseFloat(navigator.appVersion)), g }, b.browserAcceptsLargeURLs = function() { return "undefined" == typeof window || (null !== window.ActiveXObject, !0) }, b.isBrowser = function() { return "undefined" != typeof window && "undefined" != typeof document }, b.isWebSecure = function() { return "undefined" != typeof document && null != document && "s" === document.location.href.charAt(4) }; var c = function() { var a = 1e4; return function(b, c) { function d(a) { a = a || []; var c = [h, +new Date]; return b && c.push(b), a = Array.prototype.slice.call(a), c = c.concat(a) } function e(a) { var b, d, e; if ("boolean" == typeof c || !c) return !!c; if (e = a.join(" "), c instanceof Array && c.length > 0) { for (b = 0; b < c.length; ++b) if (d = c[b], d instanceof RegExp && d.test(e)) return !0; return !1 } if ("object" == typeof c) { var f = !1; if (c.hide instanceof Array) for (b = 0; b < c.hide.length; ++b) if (d = c.hide[b], d instanceof RegExp && d.test(e)) { f = !0; break } if (c.show instanceof Array) for (b = 0; b < c.show.length; ++b) if (d = c.show[b], d instanceof RegExp && d.test(e)) return !0; return !f && !c.show } return !0 } function f(b) { var d = i.length; (d > a || c && c.max && d > c.max) && (i = i.slice(-Math.floor(c.max / 2)), i.push("Previous logs: " + d)), i.push(b) } var g = this, h = "comScore", i = []; g.log = function() { var a = d(arguments); f(a), "undefined" != typeof console && "function" == typeof console.log && e(a) && console.log.apply(console, a) }, g.warn = function() { var a = d(arguments); f(a), "undefined" != typeof console && "function" == typeof console.warn && e(a) && console.warn.apply(console, a) }, g.error = function() { var a = d(arguments); f(a), "undefined" != typeof console && "function" == typeof console.error && e(a) && console.error.apply(console, a) }, g.apiCall = function(a) { for (var b = ["API call to:", a], c = 1; c < arguments.length; ++c) b.push("arg" + c + ":", arguments[c]); this.log.apply(this, b) }, g.infoLog = function() { var a = ["Trace log:"]; a.push.apply(a, Array.prototype.slice.call(arguments)), this.log.apply(this, a) }, g.deprecation = function(a, b) { var c = ["Deprecated API:", a, "is deprecated and will be eventually removed."]; b && c.push("Use", b, "instead."), this.warn.apply(this, c) }, g.getLogHistory = function() { return i } } }(); return a.StreamingAnalytics = a.StreamingAnalytics || function() { var a = function() { var a = "cs_"; return function() { var c = "undefined" != typeof localStorage ? localStorage : null; b.extend(this, { get: function(b) { return c && c.getItem(a + b) }, set: function(b, d) { c && c.setItem(a + b, d) }, has: function(b) { return c && c.getItem(a + b) }, remove: function(b) { c && c.removeItem(a + b) }, clear: function() { for (var b = 0; c && b < c.length; ++b) { var d = c.key(b); d.substr(0, a.length) === a && c.removeItem(d) } } }) } }(), d = function(a, b) { if ("undefined" == typeof Image) return void("function" == typeof setTimeout ? b && setTimeout(b, 0) : b && b()); var c = new Image; c.onload = function() { b && b(200), c = null }, c.onerror = function() { b && b(), c = null }, c.src = a }, e = function(a, b, c) { "function" == typeof setTimeout ? c && setTimeout(function() { c(200) }, 0) : c && c(200) }, f = function() { return { dir: function() { return null }, append: function(a, b, c) {}, write: function(a, b, c) {}, deleteFile: function() { return !1 }, read: function() { return null } } }(), g = function() { return { PLATFORM: "generic", httpGet: d, httpPost: e, Storage: a, IO: f, onDataFetch: function(a) { a() }, getCrossPublisherId: function() { return null }, getAppName: function() { return h.UNKNOWN_VALUE }, getAppVersion: function() { return h.UNKNOWN_VALUE }, getVisitorId: function() { return +new Date + ~~(1e3 * Math.random()) }, getVisitorIdSuffix: function() { return "72" }, getDeviceModel: function() { return h.UNKNOWN_VALUE }, getPlatformVersion: function() { return h.UNKNOWN_VALUE }, getPlatformName: function() { return "js" }, getRuntimeName: function() { return h.UNKNOWN_VALUE }, getRuntimeVersion: function() { return h.UNKNOWN_VALUE }, getDisplayResolution: function() { return h.UNKNOWN_RESOLUTION }, getApplicationResolution: function() { return h.UNKNOWN_RESOLUTION }, getLanguage: function() { return h.UNKNOWN_VALUE }, getPackageName: function() { return null }, isConnectionAvailable: function() { return !0 }, isCompatible: function() { return !0 }, autoSelect: function() {}, setPlatformAPI: function() {}, isCrossPublisherIdChanged: function() { return !1 }, setTimeout: function(a, b) { return setTimeout(a, b) }, clearTimeout: function(a) { return clearTimeout(a) }, getDeviceArchitecture: function() { return h.UNKNOWN_VALUE }, getConnectionType: function() { return h.UNKNOWN_VALUE }, getDeviceJailBrokenFlag: function() { return h.UNKNOWN_VALUE }, isConnectionSecure: function() { return !1 }, processMeasurementLabels: function() {} } }(), h = { UNKNOWN_VALUE: "unknown", UNKNOWN_RESOLUTION: "0x0" }; b.jsonObjectToStringDictionary = function(a) { var b = {}; for (var c in a) { var d = a[c]; null === d || void 0 === d ? b[c] = d : b[c] = a[c] + "" } return b }, b.getKeys = function(a, b) { var c, d = []; for (c in a) b && !b.test(c) || !a.hasOwnProperty(c) || (d[d.length] = c); return d }, b.fixEventTime = function(a) { if (a.ns_ts) return parseInt(a.ns_ts); var b = +new Date; return a.ns_ts = b + "", b }, b.isBrowser = function() { return "undefined" != typeof window && "undefined" != typeof document }, b.addNewPlaybackInterval = function(a, c, d, e) { var f = {}; if (!(d >= c)) return b.cloneObject(a); if (f.start = c, f.end = d, 0 == a.length) return a.push(f), b.cloneObject(a); var g; for (g = 0; g < a.length; g++) if (f.start >= a[g].start && f.end <= a[g].end) return b.cloneObject(a); var h, i = !1; for (h = 0; h < a.length; h++) if (h + 1 === a.length && f.start >= a[h].start || f.start >= a[h].start && f.start < a[h + 1].start) { a.splice(h + 1, 0, f), i = !0; break } i || a.splice(0, 0, f); var j = [a[0]]; for (g = 1; g < a.length; g++) j[j.length - 1].end + e < a[g].start ? j.push(a[g]) : j[j.length - 1].end < a[g].end && (j[j.length - 1].end = a[g].end); return b.cloneObject(j) }, b.stateToString = function(a) { var b = H.InternalStates; for (var c in b) if (b.hasOwnProperty(c) && b[c] == a) return c }; var i = function() { var a = ["play", "pause", "pause-on-buffering", "end", "buffer", "buffer-stop", "keep-alive", "hb", "custom", "load", "start", "skstart", "adskip", "cta", "error", "trans", "drmfa", "drmap", "drmde", "bitrt", "playrt", "volume", "window", "audio", "video", "subs", "cdn"]; return { PLAY: 0, PAUSE: 1, PAUSE_ON_BUFFERING: 2, END: 3, BUFFER: 4, BUFFER_STOP: 5, KEEPALIVE: 6, HEARTBEAT: 7, CUSTOM: 8, LOAD: 9, ENGAGE: 10, SEEK_START: 11, AD_SKIP: 12, CTA: 13, ERROR: 14, TRANSFER: 15, DRM_FAILED: 16, DRM_APPROVED: 17, DRM_DENIED: 18, BIT_RATE: 19, PLAYBACK_RATE: 20, VOLUME: 21, WINDOW_STATE: 22, AUDIO: 23, VIDEO: 24, SUBS: 25, CDN: 26, toString: function(b) { return a[b] } } }(), j = function() { return { IDLE: 0, PLAYBACK_NOT_STARTED: 1, PLAYING: 2, PAUSED: 3, BUFFERING_BEFORE_PLAYBACK: 4, BUFFERING_DURING_PLAYBACK: 5, BUFFERING_DURING_SEEKING: 6, BUFFERING_DURING_PAUSE: 7, SEEKING_BEFORE_PLAYBACK: 8, SEEKING_DURING_PLAYBACK: 9, SEEKING_DURING_BUFFERING: 10, SEEKING_DURING_PAUSE: 11, PAUSED_DURING_BUFFERING: 12 } }(), k = function() { var a = ["c", "s", "r"]; return { SINGLE_CLIP: 0, SEGMENTED: 1, REDUCED: 2, toString: function(b) { return a[b] } } }(), l = { STREAMINGANALYTICS_VERSION: "6.1.0.170130", MODEL_VERSION: "5.8", LOG_NAMESPACE: "STA", DEFAULT_PLAYERNAME: "js_api", DEFAULT_HEARTBEAT_INTERVAL: [{ playingtime: 6e4, interval: 1e4 }, { playingtime: null, interval: 6e4 }], DEFAULT_KEEP_ALIVE_INTERVAL: 12e5, DEFAULT_PAUSED_ON_BUFFERING_INTERVAL: 500, C1_VALUE: "19", C10_VALUE: "js", NS_AP_C12M_VALUE: "1", NS_NC_VALUE: "1", PAGE_NAME_LABEL: "name", RESTRICTED_URL_LENGTH_LIMIT: 2048, URL_LENGTH_LIMIT: 4096, THROTTLING_DELAY: 500, INTERVAL_MERGE_TOLERANCE: 500, SYSTEM_CLOCK_JUMP_DETECTION_DEFAULT_INTERVAL: 1e3, SYSTEM_CLOCK_JUMP_DETECTION_MINIMUM_INTERVAL: 500, DEFAULT_ASSET_PLAYBACK_RATE: 100, STANDARD_METADATA_LABELS: ["ns_st_st", "ns_st_ci", "ns_st_pr", "ns_st_sn", "ns_st_en", "ns_st_ep", "ns_st_ty", "ns_st_ct", "ns_st_li", "ns_st_ad", "ns_st_bn", "ns_st_tb", "ns_st_an", "ns_st_ta", "ns_st_pu", "c3", "c4", "c6"], LABELS_ORDER: ["c1", "c2", "ca2", "cb2", "cc2", "cd2", "ns_site", "ca_ns_site", "cb_ns_site", "cc_ns_site", "cd_ns_site", "ns_vsite", "ca_ns_vsite", "cb_ns_vsite", "cc_ns_vsite", "cd_ns_vsite", "ns_alias", "ca_ns_alias", "cb_ns_alias", "cc_ns_alias", "cd_ns_alias", "ns_ap_an", "ca_ns_ap_an", "cb_ns_ap_an", "cc_ns_ap_an", "cd_ns_ap_an", "ns_ap_pn", "ns_ap_pv", "c12", "ca12", "cb12", "cc12", "cd12", "ns_ak", "ns_ap_hw", "name", "ns_ap_ni", "ns_ap_ec", "ns_ap_ev", "ns_ap_device", "ns_ap_id", "ns_ap_csf", "ns_ap_bi", "ns_ap_pfm", "ns_ap_pfv", "ns_ap_ver", "ca_ns_ap_ver", "cb_ns_ap_ver", "cc_ns_ap_ver", "cd_ns_ap_ver", "ns_ap_sv", "ns_ap_cv", "ns_ap_smv", "ns_type", "ca_ns_type", "cb_ns_type", "cc_ns_type", "cd_ns_type", "ns_radio", "ns_nc", "cs_partner", "cs_xcid", "cs_impid", "ns_ap_ui", "ca_ns_ap_ui", "cb_ns_ap_ui", "cc_ns_ap_ui", "cd_ns_ap_ui", "ns_ap_gs", "ns_st_sv", "ns_st_pv", "ns_st_smv", "ns_st_it", "ns_st_id", "ns_st_ec", "ns_st_sp", "ns_st_sc", "ns_st_psq", "ns_st_asq", "ns_st_sq", "ns_st_ppc", "ns_st_apc", "ns_st_spc", "ns_st_cn", "ns_st_ev", "ns_st_po", "ns_st_cl", "ns_st_el", "ns_st_sl", "ns_st_pb", "ns_st_hc", "ns_st_mp", "ca_ns_st_mp", "cb_ns_st_mp", "cc_ns_st_mp", "cd_ns_st_mp", "ns_st_mv", "ca_ns_st_mv", "cb_ns_st_mv", "cc_ns_st_mv", "cd_ns_st_mv", "ns_st_pn", "ns_st_tp", "ns_st_ad", "ns_st_li", "ns_st_ci", "ns_st_si", "ns_st_pt", "ns_st_dpt", "ns_st_ipt", "ns_st_et", "ns_st_det", "ns_st_upc", "ns_st_dupc", "ns_st_iupc", "ns_st_upa", "ns_st_dupa", "ns_st_iupa", "ns_st_lpc", "ns_st_dlpc", "ns_st_lpa", "ns_st_dlpa", "ns_st_pa", "ns_st_ie", "ns_ap_jb", "ns_ap_et", "ns_ap_res", "ns_ap_sd", "ns_ap_po", "ns_ap_ot", "ns_ap_c12m", "cs_c12u", "ca_cs_c12u", "cb_cs_c12u", "cc_cs_c12u", "cd_cs_c12u", "ns_ap_install", "ns_ap_updated", "ns_ap_lastrun", "ns_ap_cs", "ns_ap_runs", "ns_ap_usage", "ns_ap_fg", "ns_ap_ft", "ns_ap_dft", "ns_ap_bt", "ns_ap_dbt", "ns_ap_dit", "ns_ap_as", "ns_ap_das", "ns_ap_it", "ns_ap_uc", "ns_ap_aus", "ns_ap_daus", "ns_ap_us", "ns_ap_dus", "ns_ap_ut", "ns_ap_oc", "ns_ap_uxc", "ns_ap_uxs", "ns_ap_lang", "ns_ap_ar", "ns_ap_miss", "ns_ts", "ns_ap_cfg", "ns_st_ca", "ns_st_cp", "ns_st_er", "ca_ns_st_er", "cb_ns_st_er", "cc_ns_st_er", "cd_ns_st_er", "ns_st_pe", "ns_st_ui", "ca_ns_st_ui", "cb_ns_st_ui", "cc_ns_st_ui", "cd_ns_st_ui", "ns_st_bc", "ns_st_dbc", "ns_st_bt", "ns_st_dbt", "ns_st_bp", "ns_st_lt", "ns_st_skc", "ns_st_dskc", "ns_st_ska", "ns_st_dska", "ns_st_skd", "ns_st_skt", "ns_st_dskt", "ns_st_pc", "ns_st_dpc", "ns_st_pp", "ns_st_br", "ns_st_pbr", "ns_st_rt", "ns_st_prt", "ns_st_ub", "ns_st_vo", "ns_st_pvo", "ns_st_ws", "ns_st_pws", "ns_st_ki", "ns_st_rp", "ns_st_bn", "ns_st_tb", "ns_st_an", "ns_st_ta", "ns_st_pl", "ns_st_pr", "ns_st_sn", "ns_st_en", "ns_st_ep", "ns_st_sr", "ns_st_ty", "ns_st_ct", "ns_st_cs", "ns_st_ge", "ns_st_st", "ns_st_stc", "ns_st_ce", "ns_st_ia", "ns_st_dt", "ns_st_ddt", "ns_st_tdt", "ns_st_tm", "ns_st_dtm", "ns_st_ttm", "ns_st_de", "ns_st_pu", "ns_st_ti", "ns_st_cu", "ns_st_fee", "ns_st_ft", "ns_st_at", "ns_st_pat", "ns_st_vt", "ns_st_pvt", "ns_st_tt", "ns_st_ptt", "ns_st_cdn", "ns_st_pcdn", "ns_st_ami", "ns_st_amt", "ns_st_ams", "ns_ap_i1", "ns_ap_i2", "ns_ap_i3", "ns_ap_i4", "ns_ap_i5", "ns_ap_i6", "ns_ap_referrer", "ns_clid", "ns_campaign", "ns_source", "ns_mchannel", "ns_linkname", "ns_fee", "gclid", "utm_campaign", "utm_source", "utm_medium", "utm_term", "utm_content", "ns_ecommerce", "ns_ec_sv", "ns_client_id", "ns_order_id", "ns_ec_cur", "ns_orderline_id", "ns_orderlines", "ns_prod_id", "ns_qty", "ns_prod_price", "ns_prod_grp", "ns_brand", "ns_shop", "ns_category", "category", "ns_c", "ns_search_term", "ns_search_result", "ns_m_exp", "ns_m_chs", "c3", "ca3", "cb3", "cc3", "cd3", "c4", "ca4", "cb4", "cc4", "cd4", "c5", "ca5", "cb5", "cc5", "cd5", "c6", "ca6", "cb6", "cc6", "cd6", "c10", "c11", "c13", "c14", "c15", "c16", "c7", "c8", "c9", "ns_ap_er", "ns_st_amc"] }, m = function() { function a() { function a() { f = {}, f.ns_st_cl = "0", f.ns_st_pn = "1", f.ns_st_tp = "0", f.ns_st_cn = "1", f.ns_st_skd = "0", f.ns_st_ci = "0", f.c3 = "*null", f.c4 = "*null", f.c6 = "*null", f.ns_st_st = "*null", f.ns_st_pu = "*null", f.ns_st_pr = "*null", f.ns_st_ep = "*null", f.ns_st_sn = "*null", f.ns_st_en = "*null", f.ns_st_ct = "*null", g = {}, e = !1, d = !1, c = h.UNKNOWN_VALUE, i = !0, j = 0, k = NaN, p = 0, n = 0, m = NaN, q = 0, r = NaN, t = 0, s = 0, o = 0, w = NaN, u = [], v = [], x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = NaN, F = 0, G = 0, H = 0, I = !1, J = NaN, N = !1, M = 0, Q = 0, K = 0, L = 0, O = 0, P = 0, R = 0, S = 0, T = 0, U = 0, V = 0, W = 0, X = 0, Y = 0, Z = 0, $ = !1, _ = l.DEFAULT_ASSET_PLAYBACK_RATE } var c, d, e, f, g, i, j, k, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, $, _, aa = this, ba = l.INTERVAL_MERGE_TOLERANCE; b.extend(this, { getHash: function() { return c }, setHash: function(a) { c = a }, setPlaybackIntervalMergeTolerance: function(a) { ba = a }, getPlaybackIntervalMergeTolerance: function() { return ba }, setInternalLabel: function(a, b) { f[a] = b }, getInternalLabel: function(a) { return f[a] }, hasInternalLabel: function(a) { return null != f[a] }, setLabels: function(a) { a && b.extend(g, a) }, getLabels: function() { return g }, setLabel: function(a, b) { g[a] = b }, getLabel: function(a) { return g[a] }, hasLabel: function(a) { return a in g }, getClipNumber: function() { return parseInt(aa.getInternalLabel("ns_st_cn")) }, setClipNumber: function(a) { aa.setInternalLabel("ns_st_cn", a + "") }, getPartNumber: function() { return aa.hasLabel("ns_st_pn") ? parseInt(aa.getLabel("ns_st_pn")) : parseInt(aa.getInternalLabel("ns_st_pn")) }, createLabels: function(a, c) { var d = a || {}, h = b.isEmpty(d.ns_st_pt) ? aa.getPlaybackTime() : parseInt(d.ns_st_pt); d.ns_st_pt = h + (isNaN(k) ? 0 : c - k) + "", d.ns_st_dpt = h + (isNaN(k) ? 0 : c - k) - n + "", d.ns_st_ipt = h + (isNaN(k) ? 0 : c - k) - o + ""; var i = b.isEmpty(d.ns_st_et) ? aa.getElapsedTime() : parseInt(d.ns_st_et); d.ns_st_et = i + (isNaN(r) ? 0 : c - r) + "", d.ns_st_det = i + (isNaN(r) ? 0 : c - r) - s + ""; var j = b.isEmpty(d.ns_st_bt) ? aa.getBufferingTime() : parseInt(d.ns_st_bt); d.ns_st_bt = j + "", d.ns_st_dbt = j + (isNaN(E) ? 0 : c - E) - F + ""; for (var l, m = parseInt(d.ns_st_po), p = b.addNewPlaybackInterval(b.cloneObject(aa.getSegmentPlaybackIntervals()), _ < 0 ? m : w, _ < 0 ? w : m, ba), q = b.addNewPlaybackInterval(b.cloneObject(aa.getAssetPlaybackIntervals()), _ < 0 ? m : w, _ < 0 ? w : m, ba), t = 0, u = 0, v = 0; v < p.length; v++) l = Math.abs(p[v].end - p[v].start), t += l, l > u && (u = l); var D = 0, G = 0; for (v = 0, l; v < q.length; v++) l = Math.abs(q[v].end - q[v].start), D += l, l > G && (G = l); d.ns_st_upc = t + "", d.ns_st_dupc = t - x + "", d.ns_st_iupc = t - y + "", t > y ? d.ns_st_iupc = t - y + "" : d.ns_st_iupc = "0", d.ns_st_lpc = u + "", d.ns_st_dlpc = u - z + "", d.ns_st_upa = D + "", d.ns_st_dupa = D - A + "", D > B ? d.ns_st_iupa = D - B + "" : d.ns_st_iupa = "0", d.ns_st_lpa = G + "", d.ns_st_dlpa = G - C + ""; var I = b.isEmpty(d.ns_st_pc) ? aa.getPauses() : parseInt(d.ns_st_pc); d.ns_st_pc = I + "", d.ns_st_dpc = I - S + ""; var J = b.isEmpty(d.ns_st_skc) ? aa.getSeeks() : parseInt(d.ns_st_skc); d.ns_st_skc = J + "", d.ns_st_dskc = J - U + ""; var K = b.isEmpty(d.ns_st_bc) ? aa.getBuffers() : parseInt(d.ns_st_bc); d.ns_st_bc = K + "", d.ns_st_dbc = K - H + ""; var M = b.isEmpty(d.ns_st_skt) ? aa.getSeekingTime() : parseInt(d.ns_st_skt); d.ns_st_skt = M + "", d.ns_st_dskt = M - L + ""; var N = b.isEmpty(d.ns_st_ska) ? aa.getSeekingAmount() : parseInt(d.ns_st_ska); return d.ns_st_ska = N + "", d.ns_st_dska = N - P + "", e && (d.ns_st_spc = V + "", d.ns_st_apc = W + "", d.ns_st_sq = X + "", d.ns_st_asq = Y + ""), e || 0 != Z ? d.ns_st_sc = Z + "" : d.ns_st_sc = "1", d.ns_st_rt = _ + "", b.extend(d, f, g), d }, updateDeltaLabels: function(a) { n = parseInt(a.ns_st_pt), s = parseInt(a.ns_st_et), F = parseInt(a.ns_st_bt), x = parseInt(a.ns_st_upc), z = parseInt(a.ns_st_lpc), A = parseInt(a.ns_st_upa), C = parseInt(a.ns_st_lpa), S = parseInt(a.ns_st_pc), U = parseInt(a.ns_st_skc), H = parseInt(a.ns_st_bc), L = parseInt(a.ns_st_skt), P = parseInt(a.ns_st_ska), aa.setSeekingDirection(0) }, updateIndependentLabels: function(a) { o = parseInt(a.ns_st_pt), y = parseInt(a.ns_st_upc), B = parseInt(a.ns_st_upa) }, getVideoTrack: function() { return aa.getInternalLabel("ns_st_vt") }, setVideoTrack: function(a) { aa.setInternalLabel("ns_st_vt", a + "") }, getAudioTrack: function() { return aa.getInternalLabel("ns_st_at") }, setAudioTrack: function(a) { aa.setInternalLabel("ns_st_at", a + "") }, getSubtitleTrack: function() { return aa.getInternalLabel("ns_st_tt") }, setSubtitleTrack: function(a) { aa.setInternalLabel("ns_st_tt", a + "") }, getCDN: function() { return aa.getInternalLabel("ns_st_cdn") }, setCDN: function(a) { aa.setInternalLabel("ns_st_cdn", a + "") }, getSegmentPlaybackIntervals: function() { return u }, setAssetPlaybackIntervals: function(a) { u = a }, getAssetPlaybackIntervals: function() { return v }, incrementPauses: function() { R++ }, incrementSeeks: function() { T++ }, incrementPlayCounter: function() { X++ }, getPlayCounter: function() { return X }, getBufferingTime: function() { return D }, setBufferingTime: function(a) { D = a }, addBufferingTime: function(a) { if (!isNaN(E)) { var b = aa.getBufferingTime(); b += a - E, aa.setBufferingTime(b), E = NaN } }, setPlaybackStartPosition: function(a) { w = parseInt(a) }, getPlaybackStartPosition: function() { return w }, addInterval: function(a) { isNaN(w) || isNaN(a) || (u = b.addNewPlaybackInterval(u, _ < 0 ? a : w, _ < 0 ? w : a, ba), v = b.addNewPlaybackInterval(v, _ < 0 ? a : w, _ < 0 ? w : a, ba), w = NaN) }, getElapsedTime: function() { return q }, setElapsedTime: function(a) { q = a }, addElapsedTime: function(a) { if (!isNaN(r)) { var b = aa.getElapsedTime(); b += a - r, aa.setElapsedTime(b), r = NaN } }, getElapsedTimestamp: function() { return r }, setElapsedTimestamp: function(a) { r = a }, addPlaybackTime: function(a) { if (!isNaN(k)) { var b = aa.getPlaybackTime(); b += a - k, aa.setPlaybackTime(b), k = NaN } }, getPlaybackTime: function() { return j }, getExpectedPlaybackPosition: function(a) { return isNaN(k) ? p : p + Math.floor((a - k) * _ / 100) }, setPlaybackTimeOffset: function(a) { p = a }, getPlaybackTimeOffset: function() { return p }, setPlaybackTime: function(a) { j = a }, getPlaybackTimestamp: function() { return k }, setPlaybackTimestamp: function(a) { k = a }, setPreviousPlaybackTime: function(a) { n = a }, setPreviousPlaybackTimestamp: function(a) { m = a }, getBufferingTimestamp: function() { return E }, setBufferingTimestamp: function(a) { E = a }, getPauses: function() { return R }, setPauses: function(a) { R = a }, getSeeks: function() { return T }, setSeeks: function(a) { T = a }, setSeeking: function(a) { I = a }, isSeeking: function() { return I }, setCollectingSeekingTime: function(a) { N = a }, isCollectingSeekingTime: function() { return N }, setAssetStarted: function(a) { d = a }, isAssetStarted: function() { return d }, setPlaybackStarted: function(a) { e = a }, isPlaybackStarted: function() { return e }, setSeekingTimestamp: function(a) { J = a }, getSeekingTimestamp: function() { return J }, addSeekingTime: function(a) { if (!isNaN(J)) { var b = aa.getSeekingTime(); b += a - J, aa.setSeekingTime(b), J = NaN } }, getSeekingTime: function() { return K }, setSeekingTime: function(a) { K = a }, setSeekingTimeBeforeEnd: function(a) { Q = a }, getSeekingTimeBeforeEnd: function() { return Q }, setSeekStartPosition: function(a) { M = a }, getSeekStartPosition: function() { return M }, setSeekingAmount: function(a) { O = a }, getSeekingAmount: function() { return O }, addSeekingAmount: function(a) { var b = aa.getSeekingAmount(); b += Math.abs(a - M), aa.setSeekingAmount(b); var c; M == a ? c = 0 : M > a ? c = -1 : M < a && (c = 1), aa.setSeekingDirection(c), M = 0 }, getSeekingDirection: function() { return parseInt(aa.getInternalLabel("ns_st_skd")) }, setSeekingDirection: function(a) { aa.setInternalLabel("ns_st_skd", a + "") }, resetAssetLifecycleLabels: function() { j = 0, n = 0, o = 0, D = 0, F = 0, G = 0, H = 0, R = 0, S = 0, X = 0, v = [], A = 0, B = 0, C = 0, q = 0, s = 0, K = 0, L = 0, O = 0, P = 0, T = 0, U = 0 }, incrementSegmentPlaybackCounter: function() { V++ }, incrementAssetLoadCounter: function() { Z++ }, incrementAssetPlaybackCounter: function() { W++ }, getPreviousUniquePlaybackInterval: function() { return x }, setPreviousUniquePlaybackInterval: function(a) { x = a }, getPreviousEventIndependentUniquePlaybackInterval: function() { return y }, setPreviousEventIndependentUniquePlaybackInterval: function(a) { y = a }, setPreviousLongestPlaybackInterval: function(a) { z = a }, getPreviousLongestPlaybackInterval: function() { return z }, resetAssetPlaybackIntervals: function() { v = [], A = 0, B = 0, C = 0 }, setSegmentPlaybackCounter: function(a) { V = a }, setAssetLoadCounter: function(a) { Z = a }, setAssetPlaybackCounter: function(a) { W = a }, setLowestPartNumberPlayed: function(a) { t = a }, getSegmentPlaybackCounter: function() { return V }, getAssetLoadCounter: function() { return Z }, getAssetPlaybackCounter: function() { return W }, getLowestPartNumberPlayed: function() { return t }, getBuffers: function() { return G }, incrementBufferCount: function() { G++ }, getPreviousBufferingTime: function() { return F }, setPlaySequenceCounter: function(a) { Y = a }, incrementPlaySequenceCounter: function() { Y++ }, getPlaySequenceCounter: function() { return Y }, isPlaybackSessionLooping: function() { return $ }, setPlaybackSessionLooping: function(a) { $ = a }, enableAutoCalculatePositions: function(a) { i = !!a }, isAutoCalculatePositionsEnabled: function() { return i }, getPlaybackRate: function() { return _ }, setPlaybackRate: function(a) { _ = a } }), a() } return a.resetAsset = function(a, b, c) { for (var d = a.getLabels(), e = {}, f = 0; c && f < c.length; ++f) d.hasOwnProperty(c[f]) && (e[c[f]] = d[c[f]]); b.setLabels(e), b.setPlaybackIntervalMergeTolerance(a.getPlaybackIntervalMergeTolerance()) }, a }(), n = function() { function a(a) { function c() { d = new m, h = {}, h.ns_st_id = +new Date + "", k = {}, e = NaN, f = 0, g = NaN, o = {}, p = 0, n = !1, q = !1, r = 0, t = 0, s = 0, u = 1, v = 0, w = [] } var d, e, f, g, h, k, n, o, p, q, r, s, t, u, v, w, x = this; b.extend(this, { resetAsset: function() { var a = d; d = new m, m.resetAsset(a, d) }, hashExists: function(a) { return null != o[a] }, storeHash: function(a) { o[a] = {} }, removeHash: function(a) { delete o[a] }, storeAssetPlaybackCounters: function() { for (var a in o) if (o.hasOwnProperty(a) && o[a].clipNumber === d.getClipNumber()) { b.extend(o[a], { segmentPlaybackCounter: d.getSegmentPlaybackCounter(), assetLoadCounter: d.getAssetLoadCounter(), assetPlaybackCounter: d.getAssetPlaybackCounter(), lowestPartNumberPlayed: d.getLowestPartNumberPlayed(), seeking: d.isSeeking(), seekingTimeBeforeEnd: d.getSeekingTimeBeforeEnd(), seekingStartPosition: d.getSeekStartPosition(), segmentPlaybackIntervals: d.getSegmentPlaybackIntervals(), videoTrack: d.getVideoTrack(), audioTrack: d.getAudioTrack(), subtitleTrack: d.getSubtitleTrack(), cdn: d.getCDN(), playSequenceCounter: d.getPlaySequenceCounter(), previousUniquePlaybackInterval: d.getPreviousUniquePlaybackInterval(), previousEventIndependentUniquePlaybackInterval: d.getPreviousEventIndependentUniquePlaybackInterval(), previousLongestPlaybackInterval: d.getPreviousLongestPlaybackInterval() }); break } }, getStoredAssetRegisters: function(a) { return o[a] }, getClipNumber: function(a) { return o[a].clipNumber }, getMaxClipNumber: function() { return p }, storeClipNumber: function(a, b) { o[a].clipNumber = b, b > p && (p = b) }, setLabels: function(a) { null != a && b.extend(k, a) }, getLabels: function() { return k }, setLabel: function(a, b) { var c = {}; c[a] = b, x.setLabels(c) }, getLabel: function(a) { return k[a] }, getAsset: function() { return d }, addInternalErrorFlag: function(a) { for (var b = 0; b < w.length; ++b) if (w[b] == a) return; w.push(a) }, createLabels: function(c, e) { var f = c || {}, i = b.isEmpty(f.ns_st_pa) ? x.getPlaybackTime() : parseInt(f.ns_st_pa); return f.ns_st_pa = i + (isNaN(g) ? 0 : e - g) + "", f.ns_st_pp = t + "", f.ns_st_sp = u + "", f.ns_st_bp = v + "", q || (f.ns_st_pb = null != f.ns_st_pb ? f.ns_st_pb : "1"), d.isPlaybackStarted() && (f.ns_st_ppc = r + "", f.ns_st_psq = s + ""), w.length > 0 && (f.ns_st_ie = (f.ns_st_ie ? f.ns_st_ie + ";" : "") + w.join(";")), b.extend(f, h, k), a.getPlaybackSession().getAsset().createLabels(f, e), f }, incrementPlayCounter: function() { u++ }, incrementPauses: function() { t++ }, addPlaybackTime: function(a) { if (!isNaN(g)) { var b = x.getPlaybackTime(); b += a - g, x.setPlaybackTime(b), g = NaN } }, addBufferingTime: function(a) { if (!isNaN(e)) { var b = x.getBufferingTime(); b += a - e, x.setBufferingTime(b), e = NaN } }, getBufferingTime: function() { return v }, setBufferingTime: function(a) { v = a }, getPlaybackTime: function() { return f }, setBufferingTimestamp: function(a) { e = a }, getBufferingTimestamp: function() { return e }, setPlaybackTime: function(a) { f = a }, setPlaybackTimestamp: function(a) { g = a }, getPlaybackTimestamp: function() { return g }, getPauses: function() { return t }, setPauses: function(a) { t = a }, isPlaybackSessionStarted: function() { return n }, setPlaybackSessionStarted: function(a) { n = a }, getPlaybackCounter: function() { return r }, incrementPlaybackCounter: function() { r++ }, setFirstEventSent: function(a) { q = a }, setPlaySequenceCounter: function(a) { s = a }, incrementPlaySequenceCounter: function() { s++ }, getPlaybackSessionID: function() { return h.ns_st_id }, setAsset: function(c, d) { a.getLogging().apiCall("setAsset", c, d), c = b.jsonObjectToStringDictionary(c); var e = a.getStateMachine().getCurrentState(); if (e != j.IDLE) { a.getLogging().infoLog("Ending the current Clip. It was in state:", b.stateToString(e)); var f = {}; a.getStaCore().newEvent(i.END, b.fixEventTime(f), f) } var g = "", h = 0; if (null != c.ns_st_cn) g = c.ns_st_cn; else for (var k = 0; k < l.STANDARD_METADATA_LABELS.length; k++) c[l.STANDARD_METADATA_LABELS[k]] && (g += l.STANDARD_METADATA_LABELS[k] + ":" + c[l.STANDARD_METADATA_LABELS[k]] + ";"); var m = x, n = m.getAsset(); n.isAssetStarted() ? (m.hashExists(n.getHash()) || (m.storeHash(n.getHash()), m.storeClipNumber(n.getHash(), n.getClipNumber())), m.storeAssetPlaybackCounters(), h = m.hashExists(g) ? m.getClipNumber(g) : b.exists(c.ns_st_cn) ? parseInt(c.ns_st_cn) : m.getMaxClipNumber() + 1) : h = m.hashExists(g) ? m.getClipNumber(g) : n.getClipNumber(), m.resetAsset(), n = m.getAsset(), n.setHash(g), n.setClipNumber(h), n.setLabels(c); var o = m.getStoredAssetRegisters(g); o && (n.setAssetStarted(!0), n.setSegmentPlaybackCounter(o.segmentPlaybackCounter), n.setAssetLoadCounter(o.assetLoadCounter), n.setAssetPlaybackCounter(o.assetPlaybackCounter), n.setLowestPartNumberPlayed(o.lowestPartNumberPlayed), n.setSeeking(o.seeking), n.setSeekingTimeBeforeEnd(o.seekingTimeBeforeEnd), n.setSeekStartPosition(o.seekingStartPosition), n.setAssetPlaybackIntervals(o.segmentPlaybackIntervals), o.videoTrack && n.setVideoTrack(o.videoTrack), o.audioTrack && n.setAudioTrack(o.audioTrack), o.subtitleTrack && n.setSubtitleTrack(o.subtitleTrack), o.cdn && n.setCDN(o.cdn), n.setPlaySequenceCounter(o.playSequenceCounter), n.setPreviousUniquePlaybackInterval(o.previousUniquePlaybackInterval), n.setPreviousEventIndependentUniquePlaybackInterval(o.previousEventIndependentUniquePlaybackInterval), n.setPreviousLongestPlaybackInterval(o.previousLongestPlaybackInterval)), n.incrementAssetLoadCounter(), n.isAssetStarted() && d && m.incrementPlayCounter(), d && (m.setPlaySequenceCounter(0), n.setPlaybackSessionLooping(!0)), !b.exists(c.ns_st_tp) && b.exists(c.ns_st_ad) && b.isNotEmpty(c.ns_st_ad) && "0" !== c.ns_st_ad && n.setInternalLabel("ns_st_tp", "1") } }), c() } return a.resetPlaybackSession = function(a, b, c) { for (var d = b.getAsset(), e = b.getLabels(), f = {}, g = 0; c && g < c.length; g++) e.hasOwnProperty(c[g]) && (f[c[g]] = e[c[g]]); a.getPlaybackSession().setLabels(f), m.resetAsset(d, a.getPlaybackSession().getAsset(), c) }, a }(), o = function() { return function(a) { function c() { e = 1 } function d(c) { f = b.extend({}, c); var d = a.getStaCore().getLiveEndpointURL(); if (a.getAppCore()) { if (a.getStaCore().isProperlyInitialized()) { var e = a.getStaCore().getExports().et; if ("function" == typeof a.getAppCore().getMeasurementDispatcher) { var g = a.getAppCore().getMeasurementDispatcher(); g.send(e.HIDDEN, c, d) } else { var h = a.getStaCore().getExports().am, i = h.newApplicationMeasurement(a.getAppCore(), e.HIDDEN, c, d); a.getAppCore().getQueue().offer(i) } } } else d && a.getStaCore().getPlatformAPI().httpGet(a.getStaCore().prepareUrl(d, c)) } var e, f, g = this, h = []; b.extend(this, { newEvent: function(a) { for (var b = 0; b < h.length; ++b) h[b](a.eventLabels); d(a.eventLabels), a.eventType != i.HEARTBEAT && g.incrementEventCounter() }, addMeasurementListener: function(a) { "function" == typeof a && h.push(a) }, removeMeasurementListener: function(a) { for (var b = NaN, c = 0; c < h.length; ++c) if (h[c] == a) { b = c; break } isNaN(b) || h.splice(b, 1) }, getEventCounter: function() { return e }, incrementEventCounter: function() { e++ }, setEventCounter: function(a) { e = a }, getMeasurementSnapshot: function() { return f } }), c() } }(), p = function() { return function(a) { function c() { g = 0, h = 0 } function d() { h++; var c = {}, d = b.fixEventTime(c); c.ns_st_hc = a.getHeartbeat().getCount() + ""; var e = a.getStaCore().createLabels(i.HEARTBEAT, c, d); a.getPlaybackSession().getAsset().updateIndependentLabels(e.eventLabels), a.getEventManager().newEvent(e), g = 0, j.resume() } function e() { null != f && (a.getStaCore().getPlatformAPI().clearTimeout(f), f = null) } var f, g, h, j = this, k = l.DEFAULT_HEARTBEAT_INTERVAL; b.extend(this, { getCount: function() { return h }, setIntervals: function(a) { k = a }, getInterval: function(a) { var b = 0; if (null != k) for (var c = 0; c < k.length; c++) { var d = k[c], e = d.playingtime; if (!e || a < e) { b = d.interval; break } } return b }, getIntervals: function() { return k }, resume: function() { e(); var b = j.getInterval(a.getPlaybackSession().getAsset().getPlaybackTime() + (+new Date - a.getPlaybackSession().getAsset().getPlaybackTimestamp())); if (b > 0) { var c = g > 0 ? g : b; f = a.getStaCore().getPlatformAPI().setTimeout(d, c) } g = 0 }, pause: function() { e(); var b = j.getInterval(a.getPlaybackSession().getAsset().getPlaybackTime() + (+new Date - a.getPlaybackSession().getAsset().getPlaybackTimestamp())); g = b - (a.getPlaybackSession().getAsset().getPlaybackTime() + (+new Date - a.getPlaybackSession().getAsset().getPlaybackTimestamp())) % b } }), c() } }(), q = function() { return function(a) { function c() {} function d() { var c = {}, d = b.fixEventTime(c); a.getStaCore().newPseudoEvent(i.KEEPALIVE, d, c), g.start() } function e() { null != f && (a.getStaCore().getPlatformAPI().clearTimeout(f), f = null) } var f, g = this, h = l.DEFAULT_KEEP_ALIVE_INTERVAL; b.extend(g, { start: function() { e(), f = a.getStaCore().getPlatformAPI().setTimeout(d, h) }, stop: e, setInterval: function(a) { h = a }, getInterval: function() { return h } }), c() } }(), r = function() { return function(a) { function c() { f = j.IDLE, e = null, d = NaN } var d, e, f, g = this; b.extend(g, { eventTypeToState: function(a) { if (f == j.IDLE) { if (a == i.PLAY) return j.PLAYING; if (a == i.SEEK_START) return j.SEEKING_BEFORE_PLAYBACK; if (a == i.BUFFER) return j.BUFFERING_BEFORE_PLAYBACK } else if (f == j.PLAYBACK_NOT_STARTED) { if (a == i.PLAY) return j.PLAYING; if (a == i.SEEK_START) return j.SEEKING_BEFORE_PLAYBACK; if (a == i.BUFFER) return j.BUFFERING_BEFORE_PLAYBACK; if (a == i.END || a == i.AD_SKIP) return j.IDLE } else if (f == j.PLAYING) { if (a == i.END || a == i.AD_SKIP) return j.IDLE; if (a == i.BUFFER) return j.BUFFERING_DURING_PLAYBACK; if (a == i.PAUSE) return j.PAUSED; if (a == i.SEEK_START) return j.SEEKING_DURING_PLAYBACK } else if (f == j.PAUSED) { if (a == i.END || a == i.AD_SKIP) return j.IDLE; if (a == i.BUFFER) return j.BUFFERING_DURING_PAUSE; if (a == i.PLAY) return j.PLAYING; if (a == i.SEEK_START) return j.SEEKING_DURING_PAUSE } else if (f == j.BUFFERING_BEFORE_PLAYBACK) { if (a == i.END || a == i.AD_SKIP) return j.IDLE; if (a == i.PAUSE || a == i.BUFFER_STOP) return j.PLAYBACK_NOT_STARTED; if (a == i.PLAY) return j.PLAYING; if (a == i.SEEK_START) return j.SEEKING_BEFORE_PLAYBACK } else if (f == j.BUFFERING_DURING_PLAYBACK) { if (a == i.END || a == i.AD_SKIP) return j.IDLE; if (a == i.PLAY || a == i.BUFFER_STOP) return j.PLAYING; if (a == i.PAUSE_ON_BUFFERING) return j.PAUSED_DURING_BUFFERING; if (a == i.SEEK_START) return j.SEEKING_DURING_BUFFERING; if (a == i.PAUSE) return j.PAUSED } else if (f == j.BUFFERING_DURING_SEEKING) { if (a == i.END || a == i.AD_SKIP) return j.IDLE; if (a == i.PLAY) return j.PLAYING; if (a == i.BUFFER_STOP) return j.SEEKING_DURING_PLAYBACK; if (a == i.PAUSE) return j.PAUSED } else if (f == j.BUFFERING_DURING_PAUSE) { if (a == i.END || a == i.AD_SKIP) return j.IDLE; if (a == i.PLAY) return j.PLAYING; if (a == i.SEEK_START) return j.SEEKING_DURING_PAUSE; if (a == i.BUFFER_STOP || a == i.PAUSE) return j.PAUSED } else if (f == j.SEEKING_BEFORE_PLAYBACK) { if (a == i.END || a == i.AD_SKIP) return j.IDLE; if (a == i.PAUSE) return j.PLAYBACK_NOT_STARTED; if (a == i.PLAY) return j.PLAYING; if (a == i.BUFFER) return j.BUFFERING_BEFORE_PLAYBACK } else if (f == j.SEEKING_DURING_PLAYBACK) { if (a == i.END || a == i.AD_SKIP) return j.IDLE; if (a == i.PLAY) return j.PLAYING; if (a == i.PAUSE) return j.PAUSED; if (a == i.BUFFER) return j.BUFFERING_DURING_SEEKING } else if (f == j.SEEKING_DURING_BUFFERING) { if (a == i.END || a == i.AD_SKIP) return j.IDLE; if (a == i.PLAY) return j.PLAYING; if (a == i.PAUSE || a == i.BUFFER_STOP) return j.PAUSED; if (a == i.BUFFER) return j.BUFFERING_DURING_SEEKING } else if (f == j.SEEKING_DURING_PAUSE) { if (a == i.END || a == i.AD_SKIP) return j.IDLE; if (a == i.PLAY) return j.PLAYING; if (a == i.PAUSE || a == i.BUFFER_STOP) return j.PAUSED; if (a == i.BUFFER) return j.BUFFERING_DURING_PAUSE } else if (f == j.PAUSED_DURING_BUFFERING) { if (a == i.END || a == i.AD_SKIP) return j.IDLE; if (a == i.SEEK_START) return j.SEEKING_DURING_BUFFERING; if (a == i.PAUSE) return j.PAUSED; if (a == i.PLAY || a == i.BUFFER_STOP) return j.PLAYING } return null }, getCurrentState: function() { return f }, newEvent: function(a, b) { var c = g.eventTypeToState(a); f != c && (e = f, f = c, d = b) }, getPreviousState: function() { return e }, getLastStateChangeTimestamp: function() { return d } }), c() } }(), s = function() { return function(a) { var c = this; b.extend(c, { onSeekStartWhenPausedOrBufferingDuringPause: function(b, c) { var d = parseInt(c.ns_st_po); a.getPlaybackSession().getAsset().isSeeking() ? a.getPlaybackSession().getAsset().isCollectingSeekingTime() || (a.getPlaybackSession().getAsset().setSeekingTimestamp(b), a.getPlaybackSession().getAsset().setCollectingSeekingTime(!0)) : a.getPlaybackSession().getAsset().incrementSeeks(), a.getPlaybackSession().getAsset().isSeeking() || (a.getPlaybackSession().getAsset().setSeeking(!0), a.getPlaybackSession().getAsset().setCollectingSeekingTime(!0), a.getPlaybackSession().getAsset().setSeekStartPosition(d), a.getPlaybackSession().getAsset().setSeekingTimestamp(b)), a.getPlaybackSession().getAsset().addElapsedTime(b), a.getPlaybackSession().getAsset().setElapsedTimestamp(b) }, onBufferWhenSeekingOrPaused: function(b, c) { a.getPlaybackSession().setBufferingTimestamp(b), a.getPlaybackSession().getAsset().setBufferingTimestamp(b), a.getPlaybackSession().getAsset().addElapsedTime(b), a.getPlaybackSession().getAsset().setElapsedTimestamp(b) }, onPlayWhenSeekingDuringBufferingOrSeekingDuringPause: function(b, c) { var d = parseInt(c.ns_st_po); a.getPlaybackSession().incrementPlaySequenceCounter(), a.getPlaybackSession().getAsset().incrementPlaySequenceCounter(), a.getPlaybackSession().getAsset().isSeeking() && (a.getPlaybackSession().getAsset().isCollectingSeekingTime() && (a.getPlaybackSession().getAsset().addSeekingTime(b), a.getPlaybackSession().getAsset().setCollectingSeekingTime(!1)), a.getPlaybackSession().getAsset().addSeekingAmount(d), a.getPlaybackSession().getAsset().setSeeking(!1)), a.getPlaybackSession().getAsset().incrementPlayCounter(), a.getPlaybackSession().setPlaybackTimestamp(b), a.getPlaybackSession().getAsset().setPlaybackTimestamp(b), a.getPlaybackSession().getAsset().addElapsedTime(b), a.getPlaybackSession().getAsset().setElapsedTimestamp(b), a.getPlaybackSession().getAsset().setPlaybackStartPosition(d), a.getHeartbeat().resume(), a.getKeepAlive().start(); var e = a.getStaCore().createLabels(i.PLAY, c, b); a.getPlaybackSession().getAsset().updateDeltaLabels(e.eventLabels), a.getPlaybackSession().getAsset().updateIndependentLabels(e.eventLabels), a.getEventManager().newEvent(e) }, onBufferStopWhenBufferingDuringSeekingOrBufferingDuringPause: function(b, c) { a.getPlaybackSession().addBufferingTime(b), a.getPlaybackSession().getAsset().addBufferingTime(b), a.getPlaybackSession().getAsset().addElapsedTime(b), a.getPlaybackSession().getAsset().setElapsedTimestamp(b) }, onPauseWhenSeekingDuringPlaybackOrSeekingDuringPause: function(b, c) { a.getPlaybackSession().getAsset().isSeeking() && a.getPlaybackSession().getAsset().isCollectingSeekingTime() && (a.getPlaybackSession().getAsset().addSeekingTime(b), a.getPlaybackSession().getAsset().setCollectingSeekingTime(!1)), a.getPlaybackSession().getAsset().addElapsedTime(b), a.getPlaybackSession().getAsset().setElapsedTimestamp(b) }, onEndOrAdSkipWhenSeekingDuringBufferingOrSeekingDuringPause: function(c, d) { a.getStaCore().resetHeartbeat(), a.getKeepAlive().stop(), a.getPlaybackSession().getAsset().addElapsedTime(c); var e = a.getStaCore().createLabels(i.END, d, c); a.getPlaybackSession().getAsset().updateDeltaLabels(e.eventLabels), a.getPlaybackSession().getAsset().updateIndependentLabels(e.eventLabels), a.getEventManager().newEvent(e), a.getPlaybackSession().getAsset().isSeeking() && a.getPlaybackSession().getAsset().isCollectingSeekingTime() && (a.getPlaybackSession().getAsset().setSeekingTimeBeforeEnd(c - a.getPlaybackSession().getAsset().getSeekingTimestamp()), a.getPlaybackSession().getAsset().setCollectingSeekingTime(!1)), a.getPlaybackSession().storeAssetPlaybackCounters(), a.getPlaybackSession().getAsset().resetAssetLifecycleLabels(), a.getPlaybackSession().getAsset().setPlaybackStarted(!1), d.hasOwnProperty("ns_st_pe") && b.parseBoolean(d.ns_st_pe, !1) && a.getStaCore().resetPlaybackSession() }, onBufferStopWhenSeekingDuringBufferingOrSeekingDuringPause: function(b, c) { a.getPlaybackSession().getAsset().isSeeking() && a.getPlaybackSession().getAsset().isCollectingSeekingTime() && (a.getPlaybackSession().getAsset().addSeekingTime(b), a.getPlaybackSession().getAsset().setCollectingSeekingTime(!1)), a.getPlaybackSession().getAsset().addElapsedTime(b), a.getPlaybackSession().getAsset().setElapsedTimestamp(b) }, onBufferStopOrOnPlayWhenBufferingDuringPlayback: function(b, c) { var d = parseInt(c.ns_st_po); a.getStaCore().stopPausedOnBufferingTimer(), a.getPlaybackSession().incrementPlaySequenceCounter(), a.getPlaybackSession().getAsset().incrementPlayCounter(), a.getPlaybackSession().getAsset().incrementPlaySequenceCounter(), a.getPlaybackSession().addBufferingTime(b), a.getPlaybackSession().getAsset().addBufferingTime(b), a.getPlaybackSession().setPlaybackTimestamp(b), a.getPlaybackSession().getAsset().setPlaybackTimestamp(b), a.getPlaybackSession().getAsset().setPlaybackStartPosition(d), a.getPlaybackSession().getAsset().addElapsedTime(b), a.getPlaybackSession().getAsset().setElapsedTimestamp(b), a.getHeartbeat().resume(), a.getKeepAlive().start() } }) } }(), t = function() { return function(a) { var c = this; b.extend(c, { onEndOrAdSkip: function(c, d) { a.getPlaybackSession().addBufferingTime(c), a.getPlaybackSession().getAsset().addBufferingTime(c), a.getPlaybackSession().getAsset().isSeeking() && a.getPlaybackSession().getAsset().isCollectingSeekingTime() && a.getPlaybackSession().getAsset().setSeekingTimeBeforeEnd(c - a.getPlaybackSession().getAsset().getSeekingTimestamp()), a.getPlaybackSession().getAsset().resetAssetLifecycleLabels(), a.getPlaybackSession().getAsset().setPlaybackStarted(!1), d.hasOwnProperty("ns_st_pe") && b.parseBoolean(d.ns_st_pe, !1) && a.getStaCore().resetPlaybackSession() }, onBufferStop: function(b, c) { a.getPlaybackSession().addBufferingTime(b), a.getPlaybackSession().getAsset().addBufferingTime(b), a.getPlaybackSession().getAsset().isSeeking() && a.getPlaybackSession().getAsset().isCollectingSeekingTime() && (a.getPlaybackSession().getAsset().addSeekingTime(b), a.getPlaybackSession().getAsset().setCollectingSeekingTime(!1)) }, onSeekStart: function(b, c) { var d = parseInt(c.ns_st_po); a.getPlaybackSession().addBufferingTime(b), a.getPlaybackSession().getAsset().addBufferingTime(b), a.getPlaybackSession().getAsset().isSeeking() ? a.getPlaybackSession().getAsset().isCollectingSeekingTime() || (a.getPlaybackSession().getAsset().setSeekingTimestamp(b), a.getPlaybackSession().getAsset().setCollectingSeekingTime(!0)) : a.getPlaybackSession().getAsset().incrementSeeks(), a.getPlaybackSession().getAsset().isSeeking() || (a.getPlaybackSession().getAsset().setSeeking(!0), a.getPlaybackSession().getAsset().setCollectingSeekingTime(!0), a.getPlaybackSession().getAsset().setSeekStartPosition(d), a.getPlaybackSession().getAsset().setSeekingTimestamp(b)) }, onPause: function(b, c) { a.getPlaybackSession().addBufferingTime(b), a.getPlaybackSession().getAsset().addBufferingTime(b), a.getPlaybackSession().getAsset().isSeeking() && a.getPlaybackSession().getAsset().isCollectingSeekingTime() && (a.getPlaybackSession().getAsset().addSeekingTime(b), a.getPlaybackSession().getAsset().setCollectingSeekingTime(!1)) }, onPlay: function(b, c) { var d = parseInt(c.ns_st_po); a.getPlaybackSession().addBufferingTime(b), a.getPlaybackSession().getAsset().addBufferingTime(b), a.getPlaybackSession().getAsset().isSeeking() && (a.getPlaybackSession().getAsset().isCollectingSeekingTime() && (a.getPlaybackSession().getAsset().addSeekingTime(b), a.getPlaybackSession().getAsset().setCollectingSeekingTime(!1)), a.getPlaybackSession().getAsset().addSeekingAmount(d), a.getPlaybackSession().getAsset().setSeeking(!1)), a.getPlaybackSession().getAsset().setPlaybackStarted(!0), (a.getPlaybackSession().getAsset().isPlaybackSessionLooping() || 0 == a.getPlaybackSession().getPlaybackCounter()) && (a.getPlaybackSession().incrementPlaybackCounter(), a.getPlaybackSession().getAsset().setPlaybackSessionLooping(!1)), a.getPlaybackSession().incrementPlaySequenceCounter(), a.getPlaybackSession().getAsset().setPlaybackStarted(!0), a.getPlaybackSession().getAsset().incrementSegmentPlaybackCounter(), a.getPlaybackSession().getAsset().incrementPlayCounter(), a.getPlaybackSession().setPlaybackTimestamp(b), a.getPlaybackSession().getAsset().setPlaybackTimestamp(b), a.getPlaybackSession().getAsset().setElapsedTimestamp(b), a.getPlaybackSession().getAsset().setPlaybackStartPosition(d), (0 == a.getPlaybackSession().getAsset().getLowestPartNumberPlayed() || a.getPlaybackSession().getAsset().getPartNumber() <= a.getPlaybackSession().getAsset().getLowestPartNumberPlayed()) && (a.getPlaybackSession().getAsset().setLowestPartNumberPlayed(a.getPlaybackSession().getAsset().getPartNumber()), a.getPlaybackSession().getAsset().incrementAssetPlaybackCounter(), a.getPlaybackSession().getAsset().setPlaySequenceCounter(0), a.getPlaybackSession().getAsset().resetAssetPlaybackIntervals()), a.getPlaybackSession().getAsset().incrementPlaySequenceCounter(), a.getStaCore().isLoadingTimeSent() || (c.ns_st_lt = a.getStaCore().getLoadTimeOffset() + b - a.getStaCore().getInitTimestamp() + "", a.getStaCore().setLoadingTimeSent(!0)), a.getHeartbeat().resume(), a.getKeepAlive().start(); var e = a.getStaCore().createLabels(i.PLAY, c, b); a.getPlaybackSession().getAsset().updateDeltaLabels(e.eventLabels), a.getPlaybackSession().getAsset().updateIndependentLabels(e.eventLabels), a.getEventManager().newEvent(e) } }) } }(), u = function() { return function(a) { var c = this; b.extend(c, { onEndAndSkip: function(c, d) { a.getStaCore().resetHeartbeat(), a.getKeepAlive().stop(), a.getPlaybackSession().addBufferingTime(c), a.getPlaybackSession().getAsset().addBufferingTime(c), a.getPlaybackSession().getAsset().addElapsedTime(c); var e = a.getStaCore().createLabels(i.END, d, c); a.getPlaybackSession().getAsset().updateDeltaLabels(e.eventLabels), a.getPlaybackSession().getAsset().updateIndependentLabels(e.eventLabels), a.getEventManager().newEvent(e), a.getPlaybackSession().getAsset().isSeeking() && a.getPlaybackSession().getAsset().isCollectingSeekingTime() && (a.getPlaybackSession().getAsset().setSeekingTimeBeforeEnd(c - a.getPlaybackSession().getAsset().getSeekingTimestamp()), a.getPlaybackSession().getAsset().setCollectingSeekingTime(!1)), a.getPlaybackSession().storeAssetPlaybackCounters(), a.getPlaybackSession().getAsset().resetAssetLifecycleLabels(), a.getPlaybackSession().getAsset().setPlaybackStarted(!1), d.hasOwnProperty("ns_st_pe") && b.parseBoolean(d.ns_st_pe, !1) && a.getStaCore().resetPlaybackSession() }, onPause: function(b, c) { a.getPlaybackSession().addBufferingTime(b), a.getPlaybackSession().getAsset().addBufferingTime(b), a.getPlaybackSession().getAsset().addElapsedTime(b), a.getPlaybackSession().getAsset().setElapsedTimestamp(b) }, onPlay: function(b, c) { var d = parseInt(c.ns_st_po); a.getPlaybackSession().incrementPlaySequenceCounter(), a.getPlaybackSession().getAsset().incrementPlaySequenceCounter(), a.getPlaybackSession().getAsset().incrementPlayCounter(), a.getPlaybackSession().addBufferingTime(b), a.getPlaybackSession().getAsset().addBufferingTime(b), a.getPlaybackSession().getAsset().isSeeking() && (a.getPlaybackSession().getAsset().isCollectingSeekingTime() && (a.getPlaybackSession().getAsset().addSeekingTime(b), a.getPlaybackSession().getAsset().setCollectingSeekingTime(!1)), a.getPlaybackSession().getAsset().addSeekingAmount(d), a.getPlaybackSession().getAsset().setSeeking(!1)), a.getPlaybackSession().getAsset().addElapsedTime(b), a.getPlaybackSession().getAsset().setElapsedTimestamp(b), a.getPlaybackSession().setPlaybackTimestamp(b), a.getPlaybackSession().getAsset().setPlaybackTimestamp(b), a.getPlaybackSession().getAsset().setPlaybackStartPosition(d), a.getHeartbeat().resume(), a.getKeepAlive().start(); var e = a.getStaCore().createLabels(i.PLAY, c, b); a.getPlaybackSession().getAsset().updateDeltaLabels(e.eventLabels), a.getPlaybackSession().getAsset().updateIndependentLabels(e.eventLabels), a.getEventManager().newEvent(e) } }) } }(), v = function() { return function(a) { var c = this; b.extend(c, { onPauseOnBuffering: function(b, c) { parseInt(c.ns_st_po); a.getStaCore().stopPausedOnBufferingTimer(), a.getPlaybackSession().getAsset().addElapsedTime(b), a.getPlaybackSession().getAsset().setElapsedTimestamp(b), a.getPlaybackSession().addBufferingTime(b), a.getPlaybackSession().getAsset().addBufferingTime(b), a.getPlaybackSession().incrementPauses(), a.getPlaybackSession().getAsset().incrementPauses(); var d = a.getStaCore().createLabels(i.PAUSE, c, b); a.getPlaybackSession().getAsset().updateDeltaLabels(d.eventLabels), a.getPlaybackSession().getAsset().updateIndependentLabels(d.eventLabels), a.getEventManager().newEvent(d), a.getPlaybackSession().setBufferingTimestamp(b), a.getPlaybackSession().getAsset().setBufferingTimestamp(b) }, onEndOrAdSkip: function(c, d) { parseInt(d.ns_st_po); a.getStaCore().stopPausedOnBufferingTimer(), a.getStaCore().resetHeartbeat(), a.getKeepAlive().stop(), a.getPlaybackSession().addBufferingTime(c), a.getPlaybackSession().getAsset().addBufferingTime(c), a.getPlaybackSession().getAsset().addElapsedTime(c); var e = a.getStaCore().createLabels(i.END, d, c); a.getPlaybackSession().getAsset().updateDeltaLabels(e.eventLabels), a.getPlaybackSession().getAsset().updateIndependentLabels(e.eventLabels), a.getEventManager().newEvent(e), a.getPlaybackSession().getAsset().resetAssetLifecycleLabels(), a.getPlaybackSession().getAsset().setPlaybackStarted(!1), d.hasOwnProperty("ns_st_pe") && b.parseBoolean(d.ns_st_pe, !1) && a.getStaCore().resetPlaybackSession() }, onSeekStart: function(b, c) { var d = parseInt(c.ns_st_po); a.getStaCore().stopPausedOnBufferingTimer(), a.getHeartbeat().pause(), a.getKeepAlive().stop(), a.getPlaybackSession().getAsset().addElapsedTime(b), a.getPlaybackSession().getAsset().setElapsedTimestamp(b), a.getPlaybackSession().addBufferingTime(b), a.getPlaybackSession().getAsset().addBufferingTime(b), a.getPlaybackSession().getAsset().incrementSeeks(), a.getPlaybackSession().getAsset().setSeeking(!0), a.getPlaybackSession().getAsset().setCollectingSeekingTime(!0), a.getPlaybackSession().getAsset().setSeekStartPosition(d), a.getPlaybackSession().getAsset().setSeekingTimestamp(b), a.getPlaybackSession().incrementPauses(), a.getPlaybackSession().getAsset().incrementPauses(); var e = a.getStaCore().createLabels(i.PAUSE, c, b); a.getPlaybackSession().getAsset().updateDeltaLabels(e.eventLabels), a.getPlaybackSession().getAsset().updateIndependentLabels(e.eventLabels), a.getEventManager().newEvent(e) }, onPause: function(b, c) { parseInt(c.ns_st_po); a.getStaCore().stopPausedOnBufferingTimer(), a.getPlaybackSession().getAsset().addElapsedTime(b), a.getPlaybackSession().getAsset().setElapsedTimestamp(b), a.getPlaybackSession().addBufferingTime(b), a.getPlaybackSession().getAsset().addBufferingTime(b), a.getPlaybackSession().incrementPauses(), a.getPlaybackSession().getAsset().incrementPauses(); var d = a.getStaCore().createLabels(i.PAUSE, c, b); a.getPlaybackSession().getAsset().updateDeltaLabels(d.eventLabels), a.getPlaybackSession().getAsset().updateIndependentLabels(d.eventLabels), a.getEventManager().newEvent(d) } }) } }(), w = function() { return function(a) { var c = this; b.extend(c, { onEndOrAdSkip: function(c, d) { a.getStaCore().resetHeartbeat(), a.getKeepAlive().stop(), a.getStaCore().stopPausedOnBufferingTimer(), a.getPlaybackSession().addBufferingTime(c), a.getPlaybackSession().getAsset().addBufferingTime(c), a.getPlaybackSession().getAsset().addElapsedTime(c); var e = a.getStaCore().createLabels(i.END, d, c); a.getPlaybackSession().getAsset().updateDeltaLabels(e.eventLabels), a.getPlaybackSession().getAsset().updateIndependentLabels(e.eventLabels), a.getEventManager().newEvent(e), a.getPlaybackSession().getAsset().isSeeking() && a.getPlaybackSession().getAsset().isCollectingSeekingTime() && (a.getPlaybackSession().getAsset().setSeekingTimeBeforeEnd(c - a.getPlaybackSession().getAsset().getSeekingTimestamp()), a.getPlaybackSession().getAsset().setCollectingSeekingTime(!1)), a.getPlaybackSession().storeAssetPlaybackCounters(), a.getPlaybackSession().getAsset().resetAssetLifecycleLabels(), a.getPlaybackSession().getAsset().setPlaybackStarted(!1), d.hasOwnProperty("ns_st_pe") && b.parseBoolean(d.ns_st_pe, !1) && a.getStaCore().resetPlaybackSession() }, onPause: function(b, c) { a.getPlaybackSession().addBufferingTime(b), a.getPlaybackSession().getAsset().addBufferingTime(b), a.getPlaybackSession().incrementPauses(), a.getPlaybackSession().getAsset().incrementPauses(), a.getPlaybackSession().getAsset().isSeeking() && a.getPlaybackSession().getAsset().isCollectingSeekingTime() && (a.getPlaybackSession().getAsset().addSeekingTime(b), a.getPlaybackSession().getAsset().setCollectingSeekingTime(!1)), a.getPlaybackSession().getAsset().addElapsedTime(b), a.getPlaybackSession().getAsset().setElapsedTimestamp(b) }, onPlay: function(b, c) { var d = parseInt(c.ns_st_po); a.getPlaybackSession().incrementPlaySequenceCounter(), a.getPlaybackSession().getAsset().incrementPlaySequenceCounter(), a.getPlaybackSession().getAsset().incrementPlayCounter(), a.getPlaybackSession().addBufferingTime(b), a.getPlaybackSession().getAsset().addBufferingTime(b), a.getPlaybackSession().getAsset().isSeeking() && (a.getPlaybackSession().getAsset().isCollectingSeekingTime() && (a.getPlaybackSession().getAsset().addSeekingTime(b), a.getPlaybackSession().getAsset().setCollectingSeekingTime(!1)), a.getPlaybackSession().getAsset().addSeekingAmount(d), a.getPlaybackSession().getAsset().setSeeking(!1)), a.getPlaybackSession().getAsset().addElapsedTime(b), a.getPlaybackSession().getAsset().setElapsedTimestamp(b), a.getPlaybackSession().setPlaybackTimestamp(b), a.getPlaybackSession().getAsset().setPlaybackTimestamp(b), a.getPlaybackSession().getAsset().setPlaybackStartPosition(d), a.getHeartbeat().resume(), a.getKeepAlive().start(); var e = a.getStaCore().createLabels(i.PLAY, c, b); a.getPlaybackSession().getAsset().updateDeltaLabels(e.eventLabels), a.getPlaybackSession().getAsset().updateIndependentLabels(e.eventLabels), a.getEventManager().newEvent(e) } }) } }(), x = function() { return function(a) { var c = this; b.extend(c, { onBuffer: function(b, c) { a.getPlaybackSession().setPlaybackSessionStarted(!0), a.getPlaybackSession().getAsset().setAssetStarted(!0), a.getPlaybackSession().getAsset().isSeeking() && a.getPlaybackSession().getAsset().setSeekingTime(a.getPlaybackSession().getAsset().getSeekingTimeBeforeEnd()), a.getPlaybackSession().setBufferingTimestamp(b), a.getPlaybackSession().getAsset().setBufferingTimestamp(b) }, onSeekStart: function(b, c) { var d = parseInt(c.ns_st_po); a.getPlaybackSession().setPlaybackSessionStarted(!0), a.getPlaybackSession().getAsset().setAssetStarted(!0), a.getPlaybackSession().getAsset().isSeeking() && a.getPlaybackSession().getAsset().setSeekingTime(a.getPlaybackSession().getAsset().getSeekingTimeBeforeEnd()), a.getPlaybackSession().getAsset().incrementSeeks(), a.getPlaybackSession().getAsset().setSeeking(!0), a.getPlaybackSession().getAsset().setCollectingSeekingTime(!0), a.getPlaybackSession().getAsset().setSeekStartPosition(d), a.getPlaybackSession().getAsset().setSeekingTimestamp(b) }, onPlay: function(b, c) { var d = parseInt(c.ns_st_po); a.getPlaybackSession().setPlaybackSessionStarted(!0), a.getPlaybackSession().getAsset().setAssetStarted(!0), (a.getPlaybackSession().getAsset().isPlaybackSessionLooping() || 0 == a.getPlaybackSession().getPlaybackCounter()) && (a.getPlaybackSession().incrementPlaybackCounter(), a.getPlaybackSession().getAsset().setPlaybackSessionLooping(!1)), a.getPlaybackSession().getAsset().isSeeking() && (a.getPlaybackSession().getAsset().setSeekingTime(a.getPlaybackSession().getAsset().getSeekingTimeBeforeEnd()), a.getPlaybackSession().getAsset().addSeekingAmount(d), a.getPlaybackSession().getAsset().setSeeking(!1)), a.getPlaybackSession().incrementPlaySequenceCounter(), a.getPlaybackSession().getAsset().setPlaybackStarted(!0), a.getPlaybackSession().getAsset().incrementSegmentPlaybackCounter(), (0 == a.getPlaybackSession().getAsset().getLowestPartNumberPlayed() || a.getPlaybackSession().getAsset().getPartNumber() <= a.getPlaybackSession().getAsset().getLowestPartNumberPlayed()) && (a.getPlaybackSession().getAsset().setLowestPartNumberPlayed(a.getPlaybackSession().getAsset().getPartNumber()), a.getPlaybackSession().getAsset().incrementAssetPlaybackCounter(), a.getPlaybackSession().getAsset().setPlaySequenceCounter(0), a.getPlaybackSession().getAsset().resetAssetPlaybackIntervals()), a.getPlaybackSession().getAsset().incrementPlaySequenceCounter(), a.getPlaybackSession().getAsset().incrementPlayCounter(), a.getPlaybackSession().setPlaybackTimestamp(b), a.getPlaybackSession().getAsset().setPlaybackTimestamp(b), a.getPlaybackSession().getAsset().setElapsedTimestamp(b), a.getPlaybackSession().getAsset().setPlaybackStartPosition(d), a.getStaCore().isLoadingTimeSent() || (c.ns_st_lt = a.getStaCore().getLoadTimeOffset() + b - a.getStaCore().getInitTimestamp() + "", a.getStaCore().setLoadingTimeSent(!0)), a.getHeartbeat().resume(), a.getKeepAlive().start(); var e = a.getStaCore().createLabels(i.PLAY, c, b); a.getPlaybackSession().getAsset().updateDeltaLabels(e.eventLabels), a.getPlaybackSession().getAsset().updateIndependentLabels(e.eventLabels), a.getEventManager().newEvent(e) } }) } }(), y = function() { return function(a) { var c = this; b.extend(c, { onEndOrAdSkip: function(c, d) { a.getStaCore().resetHeartbeat(), a.getKeepAlive().stop(), a.getPlaybackSession().getAsset().addElapsedTime(c); var e = a.getStaCore().createLabels(i.END, d, c); a.getPlaybackSession().getAsset().updateDeltaLabels(e.eventLabels), a.getPlaybackSession().getAsset().updateIndependentLabels(e.eventLabels), a.getEventManager().newEvent(e), a.getPlaybackSession().getAsset().isSeeking() && a.getPlaybackSession().getAsset().isCollectingSeekingTime() && (a.getPlaybackSession().getAsset().setSeekingTimeBeforeEnd(c - a.getPlaybackSession().getAsset().getSeekingTimestamp()), a.getPlaybackSession().getAsset().setSeeking(!1)), a.getPlaybackSession().storeAssetPlaybackCounters(), a.getPlaybackSession().getAsset().resetAssetLifecycleLabels(), a.getPlaybackSession().getAsset().setPlaybackStarted(!1), d.hasOwnProperty("ns_st_pe") && b.parseBoolean(d.ns_st_pe, !1) && a.getStaCore().resetPlaybackSession() }, onPlay: function(b, c) { var d = parseInt(c.ns_st_po); a.getPlaybackSession().incrementPlaySequenceCounter(), a.getPlaybackSession().getAsset().isSeeking() && (a.getPlaybackSession().getAsset().isCollectingSeekingTime() && (a.getPlaybackSession().getAsset().addSeekingTime(b), a.getPlaybackSession().getAsset().setCollectingSeekingTime(!1)), a.getPlaybackSession().getAsset().addSeekingAmount(d), a.getPlaybackSession().getAsset().setSeeking(!1)), a.getPlaybackSession().getAsset().incrementPlayCounter(), a.getPlaybackSession().getAsset().incrementPlaySequenceCounter(), a.getPlaybackSession().setPlaybackTimestamp(b), a.getPlaybackSession().getAsset().setPlaybackTimestamp(b), a.getPlaybackSession().getAsset().addElapsedTime(b), a.getPlaybackSession().getAsset().setElapsedTimestamp(b), a.getPlaybackSession().getAsset().setPlaybackStartPosition(d), a.getHeartbeat().resume(), a.getKeepAlive().start(); var e = a.getStaCore().createLabels(i.PLAY, c, b); a.getPlaybackSession().getAsset().updateDeltaLabels(e.eventLabels), a.getPlaybackSession().getAsset().updateIndependentLabels(e.eventLabels), a.getEventManager().newEvent(e) } }) } }(), z = function() { return function(a) { var c = this; b.extend(c, { onEndOrAdSkip: function(c, d) { a.getStaCore().resetHeartbeat(), a.getKeepAlive().stop(), a.getPlaybackSession().addBufferingTime(c), a.getPlaybackSession().getAsset().addBufferingTime(c), a.getPlaybackSession().getAsset().addElapsedTime(c), a.getPlaybackSession().getAsset().isSeeking() && a.getPlaybackSession().getAsset().isCollectingSeekingTime() && (a.getPlaybackSession().getAsset().setSeekingTimeBeforeEnd(c - a.getPlaybackSession().getAsset().getSeekingTimestamp()), a.getPlaybackSession().getAsset().setCollectingSeekingTime(!1)); var e = a.getStaCore().createLabels(i.END, d, c); a.getPlaybackSession().getAsset().updateDeltaLabels(e.eventLabels), a.getPlaybackSession().getAsset().updateIndependentLabels(e.eventLabels), a.getEventManager().newEvent(e), a.getPlaybackSession().getAsset().resetAssetLifecycleLabels(), a.getPlaybackSession().getAsset().setPlaybackStarted(!1), d.hasOwnProperty("ns_st_pe") && b.parseBoolean(d.ns_st_pe, !1) && a.getStaCore().resetPlaybackSession() }, onBufferStop: function(b, c) { var d = parseInt(c.ns_st_po); a.getPlaybackSession().addBufferingTime(b), a.getPlaybackSession().getAsset().addBufferingTime(b), a.getPlaybackSession().setPlaybackTimestamp(b), a.getPlaybackSession().getAsset().setPlaybackTimestamp(b), a.getPlaybackSession().getAsset().addElapsedTime(b), a.getPlaybackSession().getAsset().setElapsedTimestamp(b), a.getPlaybackSession().getAsset().setPlaybackStartPosition(d), a.getHeartbeat().resume(), a.getKeepAlive().start(); var e = a.getStaCore().createLabels(i.PLAY, c, b); a.getPlaybackSession().getAsset().updateDeltaLabels(e.eventLabels), a.getPlaybackSession().getAsset().updateIndependentLabels(e.eventLabels), a.getEventManager().newEvent(e) }, onSeekStart: function(b, c) { var d = parseInt(c.ns_st_po); a.getPlaybackSession().addBufferingTime(b), a.getPlaybackSession().getAsset().addBufferingTime(b), a.getPlaybackSession().getAsset().isSeeking() ? a.getPlaybackSession().getAsset().isCollectingSeekingTime() || (a.getPlaybackSession().getAsset().setSeekingTimestamp(b), a.getPlaybackSession().getAsset().setCollectingSeekingTime(!0)) : a.getPlaybackSession().getAsset().incrementSeeks(), a.getPlaybackSession().getAsset().isSeeking() || (a.getPlaybackSession().getAsset().setSeeking(!0), a.getPlaybackSession().getAsset().setCollectingSeekingTime(!0), a.getPlaybackSession().getAsset().setSeekStartPosition(d), a.getPlaybackSession().getAsset().setSeekingTimestamp(b)), a.getPlaybackSession().getAsset().addElapsedTime(b), a.getPlaybackSession().getAsset().setElapsedTimestamp(b) }, onPause: function(b, c) { a.getPlaybackSession().addBufferingTime(b), a.getPlaybackSession().getAsset().addBufferingTime(b), a.getPlaybackSession().getAsset().addElapsedTime(b), a.getPlaybackSession().getAsset().setElapsedTimestamp(b) }, onPlay: function(b, c) { var d = parseInt(c.ns_st_po); a.getPlaybackSession().incrementPlaySequenceCounter(), a.getPlaybackSession().getAsset().incrementPlaySequenceCounter(), a.getPlaybackSession().addBufferingTime(b), a.getPlaybackSession().getAsset().addBufferingTime(b), a.getPlaybackSession().getAsset().incrementPlayCounter(), a.getPlaybackSession().setPlaybackTimestamp(b), a.getPlaybackSession().getAsset().setPlaybackTimestamp(b), a.getPlaybackSession().getAsset().addElapsedTime(b), a.getPlaybackSession().getAsset().setElapsedTimestamp(b), a.getPlaybackSession().getAsset().setPlaybackStartPosition(d), a.getHeartbeat().resume(), a.getKeepAlive().start(); var e = a.getStaCore().createLabels(i.PLAY, c, b); a.getPlaybackSession().getAsset().updateDeltaLabels(e.eventLabels), a.getPlaybackSession().getAsset().updateIndependentLabels(e.eventLabels), a.getEventManager().newEvent(e) } }) } }(), A = function() { return function(a) { var c = this; b.extend(c, { onEndOrAdSkip: function(c, d) { a.getPlaybackSession().getAsset().isSeeking() && a.getPlaybackSession().getAsset().isCollectingSeekingTime() && (a.getPlaybackSession().getAsset().setSeekingTimeBeforeEnd(c - a.getPlaybackSession().getAsset().getSeekingTimestamp()), a.getPlaybackSession().getAsset().setCollectingSeekingTime(!1)), a.getPlaybackSession().storeAssetPlaybackCounters(), a.getPlaybackSession().getAsset().resetAssetLifecycleLabels(), a.getPlaybackSession().getAsset().setPlaybackStarted(!1), d.hasOwnProperty("ns_st_pe") && b.parseBoolean(d.ns_st_pe, !1) && a.getStaCore().resetPlaybackSession() }, onSeekStart: function(b, c) { var d = parseInt(c.ns_st_po); a.getPlaybackSession().getAsset().isSeeking() ? a.getPlaybackSession().getAsset().setSeekingTimestamp(b) : a.getPlaybackSession().getAsset().incrementSeeks(), a.getPlaybackSession().getAsset().isSeeking() || (a.getPlaybackSession().getAsset().setSeeking(!0), a.getPlaybackSession().getAsset().setCollectingSeekingTime(!0), a.getPlaybackSession().getAsset().setSeekStartPosition(d), a.getPlaybackSession().getAsset().setSeekingTimestamp(b)) }, onPlay: function(b, c) { var d = parseInt(c.ns_st_po); a.getPlaybackSession().getAsset().isSeeking() && (a.getPlaybackSession().getAsset().addSeekingAmount(d), a.getPlaybackSession().getAsset().setSeeking(!1)), a.getPlaybackSession().setPlaybackSessionStarted(!0), (a.getPlaybackSession().getAsset().isPlaybackSessionLooping() || 0 == a.getPlaybackSession().getPlaybackCounter()) && (a.getPlaybackSession().incrementPlaybackCounter(), a.getPlaybackSession().getAsset().setPlaybackSessionLooping(!1)), a.getPlaybackSession().incrementPlaySequenceCounter(), a.getPlaybackSession().getAsset().setPlaybackStarted(!0), a.getPlaybackSession().getAsset().incrementSegmentPlaybackCounter(), (0 == a.getPlaybackSession().getAsset().getLowestPartNumberPlayed() || a.getPlaybackSession().getAsset().getPartNumber() <= a.getPlaybackSession().getAsset().getLowestPartNumberPlayed()) && (a.getPlaybackSession().getAsset().setLowestPartNumberPlayed(a.getPlaybackSession().getAsset().getPartNumber()), a.getPlaybackSession().getAsset().incrementAssetPlaybackCounter(), a.getPlaybackSession().getAsset().setPlaySequenceCounter(0), a.getPlaybackSession().getAsset().resetAssetPlaybackIntervals()), a.getPlaybackSession().getAsset().incrementPlaySequenceCounter(), a.getPlaybackSession().getAsset().incrementPlayCounter(), a.getPlaybackSession().setPlaybackTimestamp(b), a.getPlaybackSession().getAsset().setPlaybackTimestamp(b), a.getPlaybackSession().getAsset().setElapsedTimestamp(b), a.getPlaybackSession().getAsset().setPlaybackStartPosition(d), a.getStaCore().isLoadingTimeSent() || (c.ns_st_lt = a.getStaCore().getLoadTimeOffset() + b - a.getStaCore().getInitTimestamp() + "", a.getStaCore().setLoadingTimeSent(!0)), a.getHeartbeat().resume(), a.getKeepAlive().start(); var e = a.getStaCore().createLabels(i.PLAY, c, b); a.getPlaybackSession().getAsset().updateDeltaLabels(e.eventLabels), a.getPlaybackSession().getAsset().updateIndependentLabels(e.eventLabels), a.getEventManager().newEvent(e) }, onBuffer: function() { a.getPlaybackSession().setBufferingTimestamp(eventTimestamp), a.getPlaybackSession().getAsset().setBufferingTimestamp(eventTimestamp) } }) } }(), B = function() { return function(a) { var c = this; b.extend(c, { onEndOrAdSkip: function(c, d) { var e = parseInt(d.ns_st_po); a.getStaCore().resetHeartbeat(), a.getKeepAlive().stop(), a.getPlaybackSession().addPlaybackTime(c), a.getPlaybackSession().getAsset().addPlaybackTime(c), a.getPlaybackSession().getAsset().addElapsedTime(c), a.getPlaybackSession().getAsset().addInterval(e); var f = a.getStaCore().createLabels(i.END, d, c); a.getPlaybackSession().getAsset().updateDeltaLabels(f.eventLabels), a.getPlaybackSession().getAsset().updateIndependentLabels(f.eventLabels), a.getEventManager().newEvent(f), a.getPlaybackSession().getAsset().resetAssetLifecycleLabels(), a.getPlaybackSession().getAsset().setPlaybackStarted(!1), d.hasOwnProperty("ns_st_pe") && b.parseBoolean(d.ns_st_pe, !1) && a.getStaCore().resetPlaybackSession() }, onBuffer: function(b, c) { var d = parseInt(c.ns_st_po); a.getHeartbeat().pause(), a.getKeepAlive().stop(), a.getPlaybackSession().addPlaybackTime(b), a.getPlaybackSession().getAsset().addPlaybackTime(b), a.getPlaybackSession().getAsset().addInterval(d), a.getStaCore().isPauseOnBufferingEnabled() && a.getStaCore().startPausedOnBufferingTimer(b, c), a.getPlaybackSession().getAsset().incrementBufferCount(), a.getPlaybackSession().setBufferingTimestamp(b), a.getPlaybackSession().getAsset().setBufferingTimestamp(b), a.getPlaybackSession().getAsset().addElapsedTime(b), a.getPlaybackSession().getAsset().setElapsedTimestamp(b) }, onSeekStart: function(b, c) { var d = parseInt(c.ns_st_po); a.getHeartbeat().pause(), a.getKeepAlive().stop(), a.getPlaybackSession().addPlaybackTime(b), a.getPlaybackSession().getAsset().addPlaybackTime(b), a.getPlaybackSession().getAsset().addInterval(d), a.getPlaybackSession().getAsset().incrementSeeks(), a.getPlaybackSession().getAsset().setSeeking(!0), a.getPlaybackSession().getAsset().setCollectingSeekingTime(!0), a.getPlaybackSession().getAsset().setSeekStartPosition(d), a.getPlaybackSession().getAsset().setSeekingTimestamp(b), a.getPlaybackSession().getAsset().addElapsedTime(b), a.getPlaybackSession().getAsset().setElapsedTimestamp(b), a.getPlaybackSession().incrementPauses(), a.getPlaybackSession().getAsset().incrementPauses(); var e = a.getStaCore().createLabels(i.PAUSE, c, b); a.getPlaybackSession().getAsset().updateDeltaLabels(e.eventLabels), a.getPlaybackSession().getAsset().updateIndependentLabels(e.eventLabels), a.getEventManager().newEvent(e) }, onPause: function(b, c) { var d = parseInt(c.ns_st_po); a.getHeartbeat().pause(), a.getKeepAlive().stop(), a.getPlaybackSession().addPlaybackTime(b), a.getPlaybackSession().getAsset().addPlaybackTime(b), a.getPlaybackSession().getAsset().addInterval(d), a.getPlaybackSession().getAsset().addElapsedTime(b), a.getPlaybackSession().getAsset().setElapsedTimestamp(b), a.getPlaybackSession().incrementPauses(), a.getPlaybackSession().getAsset().incrementPauses(); var e = a.getStaCore().createLabels(i.PAUSE, c, b); a.getPlaybackSession().getAsset().updateDeltaLabels(e.eventLabels), a.getPlaybackSession().getAsset().updateIndependentLabels(e.eventLabels), a.getEventManager().newEvent(e) } }) } }(), C = function() { return function(a) { var c = this; b.extend(c, { onEndOrAdSkip: function(c, d) { a.getPlaybackSession().getAsset().isSeeking() && a.getPlaybackSession().getAsset().isCollectingSeekingTime() && (a.getPlaybackSession().getAsset().setSeekingTimeBeforeEnd(c - a.getPlaybackSession().getAsset().getSeekingTimestamp()), a.getPlaybackSession().getAsset().setCollectingSeekingTime(!1)), a.getPlaybackSession().storeAssetPlaybackCounters(), a.getPlaybackSession().getAsset().resetAssetLifecycleLabels(), a.getPlaybackSession().getAsset().setPlaybackStarted(!1), d.hasOwnProperty("ns_st_pe") && b.parseBoolean(d.ns_st_pe, !1) && a.getStaCore().resetPlaybackSession() }, onPause: function(b, c) { a.getPlaybackSession().getAsset().isSeeking() && a.getPlaybackSession().getAsset().isCollectingSeekingTime() && (a.getPlaybackSession().getAsset().addSeekingTime(b), a.getPlaybackSession().getAsset().setCollectingSeekingTime(!1)) }, onPlay: function(b, c) { var d = parseInt(c.ns_st_po); a.getPlaybackSession().getAsset().isSeeking() && (a.getPlaybackSession().getAsset().isCollectingSeekingTime() && (a.getPlaybackSession().getAsset().addSeekingTime(b), a.getPlaybackSession().getAsset().setCollectingSeekingTime(!1)), a.getPlaybackSession().getAsset().addSeekingAmount(d), a.getPlaybackSession().getAsset().setSeeking(!1)), (a.getPlaybackSession().getAsset().isPlaybackSessionLooping() || 0 == a.getPlaybackSession().getPlaybackCounter()) && (a.getPlaybackSession().incrementPlaybackCounter(), a.getPlaybackSession().getAsset().setPlaybackSessionLooping(!1)), a.getPlaybackSession().incrementPlaySequenceCounter(), a.getPlaybackSession().getAsset().incrementPlaySequenceCounter(), a.getPlaybackSession().getAsset().incrementPlayCounter(), a.getPlaybackSession().getAsset().setPlaybackStarted(!0), a.getPlaybackSession().getAsset().incrementSegmentPlaybackCounter(), (0 == a.getPlaybackSession().getAsset().getLowestPartNumberPlayed() || a.getPlaybackSession().getAsset().getPartNumber() <= a.getPlaybackSession().getAsset().getLowestPartNumberPlayed()) && (a.getPlaybackSession().getAsset().setLowestPartNumberPlayed(a.getPlaybackSession().getAsset().getPartNumber()), a.getPlaybackSession().getAsset().incrementAssetPlaybackCounter(), a.getPlaybackSession().getAsset().setPlaySequenceCounter(0), a.getPlaybackSession().getAsset().resetAssetPlaybackIntervals()), a.getPlaybackSession().setPlaybackTimestamp(b), a.getPlaybackSession().getAsset().setPlaybackTimestamp(b), a.getPlaybackSession().getAsset().setElapsedTimestamp(b), a.getPlaybackSession().getAsset().setPlaybackStartPosition(d), a.getStaCore().isLoadingTimeSent() || (c.ns_st_lt = a.getStaCore().getLoadTimeOffset() + b - a.getStaCore().getInitTimestamp() + "", a.getStaCore().setLoadingTimeSent(!0)), a.getHeartbeat().resume(), a.getKeepAlive().start(); var e = a.getStaCore().createLabels(i.PLAY, c, b); a.getPlaybackSession().getAsset().updateDeltaLabels(e.eventLabels), a.getPlaybackSession().getAsset().updateIndependentLabels(e.eventLabels), a.getEventManager().newEvent(e) } }) } }(), D = function() { return function(a) { var c = this; b.extend(c, { onPause: function(b, c) { a.getPlaybackSession().incrementPauses(), a.getPlaybackSession().getAsset().incrementPauses(), a.getPlaybackSession().getAsset().isSeeking() && a.getPlaybackSession().getAsset().isCollectingSeekingTime() && (a.getPlaybackSession().getAsset().addSeekingTime(b), a.getPlaybackSession().getAsset().setCollectingSeekingTime(!1)), a.getPlaybackSession().getAsset().addElapsedTime(b), a.getPlaybackSession().getAsset().setElapsedTimestamp(b) } }) } }(), E = function() { return function(a) { var c = this; b.extend(c, { onEndOrAdSkip: function(c, d) { parseInt(d.ns_st_po); a.getStaCore().resetHeartbeat(), a.getKeepAlive().stop(), a.getPlaybackSession().getAsset().addElapsedTime(c); var e = a.getStaCore().createLabels(i.END, d, c); a.getPlaybackSession().getAsset().updateDeltaLabels(e.eventLabels), a.getPlaybackSession().getAsset().updateIndependentLabels(e.eventLabels), a.getEventManager().newEvent(e), a.getPlaybackSession().getAsset().isSeeking() && a.getPlaybackSession().getAsset().isCollectingSeekingTime() && (a.getPlaybackSession().getAsset().setSeekingTimeBeforeEnd(c - a.getPlaybackSession().getAsset().getSeekingTimestamp()), a.getPlaybackSession().getAsset().setCollectingSeekingTime(!1)), a.getPlaybackSession().storeAssetPlaybackCounters(), a.getPlaybackSession().getAsset().resetAssetLifecycleLabels(), a.getPlaybackSession().getAsset().setPlaybackStarted(!1), d.hasOwnProperty("ns_st_pe") && b.parseBoolean(d.ns_st_pe, !1) && a.getStaCore().resetPlaybackSession() }, onPlay: function(b, c) { var d = parseInt(c.ns_st_po); a.getPlaybackSession().incrementPlaySequenceCounter(), a.getPlaybackSession().getAsset().incrementPlaySequenceCounter(), a.getPlaybackSession().getAsset().incrementPlayCounter(), a.getPlaybackSession().getAsset().isSeeking() && (a.getPlaybackSession().getAsset().isCollectingSeekingTime() && (a.getPlaybackSession().getAsset().addSeekingTime(b), a.getPlaybackSession().getAsset().setCollectingSeekingTime(!1)), a.getPlaybackSession().getAsset().addSeekingAmount(d), a.getPlaybackSession().getAsset().setSeeking(!1)), a.getPlaybackSession().getAsset().addElapsedTime(b), a.getPlaybackSession().getAsset().setElapsedTimestamp(b), a.getPlaybackSession().setPlaybackTimestamp(b), a.getPlaybackSession().getAsset().setPlaybackTimestamp(b), a.getPlaybackSession().getAsset().setPlaybackStartPosition(d), a.getStaCore().isLoadingTimeSent() || (c.ns_st_lt = a.getStaCore().getLoadTimeOffset() + b - a.getStaCore().getInitTimestamp() + "", a.getStaCore().setLoadingTimeSent(!0)), a.getHeartbeat().resume(), a.getKeepAlive().start(); var e = a.getStaCore().createLabels(i.PLAY, c, b); a.getPlaybackSession().getAsset().updateDeltaLabels(e.eventLabels), a.getPlaybackSession().getAsset().updateIndependentLabels(e.eventLabels), a.getEventManager().newEvent(e) } }) } }(), F = function() { return function(a) { function d() { if (F = new G(ea), b.getNamespace().comScore ? (fa = b.getNamespace().comScore.exports, F.setAppCore(fa.c())) : F.setAppCore(null), a.publisherId) { ea.setLabel("c2", a.publisherId); var d = a.secure; !d && F.getAppCore() ? d = F.getAppCore().isSecure() : !d && b.isBrowser() && (d = b.isWebSecure()); var e = (d ? "https://sb" : "http://b") + ".scorecardresearch.com/p?c1=2"; ea.setLiveEndpointURL(e) } a.liveEndpointURL && ea.setLiveEndpointURL(a.liveEndpointURL), F.setKeepAlive(new q(F)), F.setHeartbeat(new p(F)), F.setEventManager(new o(F)), F.setStateMachine(new r), F.setLogging(new c(l.LOG_NAMESPACE, a.debug)), F.setPlaybackSession(new n(F)), H = new x(F), I = new y(F), J = new A(F), K = new B(F), L = new t(F), M = new v(F), N = new w(F), O = new u(F), P = new z(F), Q = new C(F), R = new D(F), S = new E(F), T = new s(F), U = !1, V = 0, W = +new Date, Y = !0, $ = !1, aa = [], a.systemClockJumpDetection && ea.enableSystemClockJumpsDetection(parseInt(a.systemClockJumpDetectionInterval)) } function e(a) { var b = F.getStateMachine().getCurrentState(); if (b == j.IDLE || b == j.PLAYBACK_NOT_STARTED || b == j.BUFFERING_BEFORE_PLAYBACK || b == j.SEEKING_BEFORE_PLAYBACK) { if (a == i.PLAY) return !0 } else if (b == j.PLAYING) { if (a == i.END || a == i.AD_SKIP || a == i.SEEK_START || a == i.PAUSE) return !0 } else if (b == j.PAUSED || b == j.BUFFERING_DURING_PAUSE || b == j.SEEKING_DURING_PLAYBACK || b == j.SEEKING_DURING_BUFFERING || b == j.SEEKING_DURING_PAUSE) { if (a == i.END || a == i.AD_SKIP || a == i.PLAY) return !0 } else if (b == j.BUFFERING_DURING_PLAYBACK) { if (a == i.PAUSE_ON_BUFFERING || a == i.END || a == i.AD_SKIP || a == i.SEEK_START || a == i.PAUSE || a == i.PLAY) return !0 } else if (b == j.BUFFERING_DURING_SEEKING) { if (a == i.END || a == i.AD_SKIP || a == i.PAUSE || a == i.PLAY) return !0 } else if (b == j.PAUSED_DURING_BUFFERING && (a == i.END || a == i.AD_SKIP || a == i.BUFFER_STOP || a == i.PLAY)) return !0; return !1 } function f(a, b, c) { var d = F.getStateMachine().getCurrentState(); a == i.AD_SKIP && !c.hasOwnProperty("ns_st_ui") && e(a) ? c.ns_st_ui = "skip" : a == i.SEEK_START && !c.hasOwnProperty("ns_st_ui") && e(a) && (c.ns_st_ui = "seek"), d == j.IDLE ? a == i.BUFFER ? H.onBuffer(b, c) : a == i.SEEK_START ? H.onSeekStart(b, c) : a == i.PLAY && H.onPlay(b, c) : d == j.PLAYBACK_NOT_STARTED ? a == i.END || a == i.AD_SKIP ? J.onEndOrAdSkip(b, c) : a == i.SEEK_START ? J.onSeekStart(b, c) : a == i.PLAY ? J.onPlay(b, c) : a == i.BUFFER && J.onBuffer(b, c) : d == j.PLAYING ? a == i.END || a == i.AD_SKIP ? K.onEndOrAdSkip(b, c) : a == i.BUFFER ? K.onBuffer(b, c) : a == i.SEEK_START ? K.onSeekStart(b, c) : a == i.PAUSE && K.onPause(b, c) : d == j.PAUSED ? a == i.END || a == i.AD_SKIP ? I.onEndOrAdSkip(b, c) : a == i.PLAY ? I.onPlay(b, c) : a == i.BUFFER ? T.onBufferWhenSeekingOrPaused(b, c) : a == i.SEEK_START && T.onSeekStartWhenPausedOrBufferingDuringPause(b, c) : d == j.BUFFERING_BEFORE_PLAYBACK ? a == i.END || a == i.AD_SKIP ? L.onEndOrAdSkip(b, c) : a == i.BUFFER_STOP ? L.onBufferStop(b, c) : a == i.SEEK_START ? L.onSeekStart(b, c) : a == i.PAUSE ? L.onPause(b, c) : a == i.PLAY && L.onPlay(b, c) : d == j.BUFFERING_DURING_PLAYBACK ? a == i.PAUSE_ON_BUFFERING ? M.onPauseOnBuffering(b, c) : a == i.BUFFER_STOP ? T.onBufferStopOrOnPlayWhenBufferingDuringPlayback(b, c) : a == i.END || a == i.AD_SKIP ? M.onEndOrAdSkip(b, c) : a == i.SEEK_START ? M.onSeekStart(b, c) : a == i.PAUSE ? M.onPause(b, c) : a == i.PLAY && T.onBufferStopOrOnPlayWhenBufferingDuringPlayback(b, c) : d == j.BUFFERING_DURING_SEEKING ? a == i.END || a == i.AD_SKIP ? N.onEndOrAdSkip(b, c) : a == i.PAUSE ? N.onPause(b, c) : a == i.PLAY ? N.onPlay(b, c) : a == i.BUFFER_STOP && T.onBufferStopWhenBufferingDuringSeekingOrBufferingDuringPause(b, c) : d == j.BUFFERING_DURING_PAUSE ? a == i.END || a == i.AD_SKIP ? O.onEndAndSkip(b, c) : a == i.PAUSE ? O.onPause(b, c) : a == i.PLAY ? O.onPlay(b, c) : a == i.SEEK_START ? T.onSeekStartWhenPausedOrBufferingDuringPause(b, c) : a == i.BUFFER_STOP && T.onBufferStopWhenBufferingDuringSeekingOrBufferingDuringPause(b, c) : d == j.SEEKING_BEFORE_PLAYBACK ? a == i.END || a == i.AD_SKIP ? Q.onEndOrAdSkip(b, c) : a == i.PAUSE ? Q.onPause(b, c) : a == i.PLAY ? Q.onPlay(b, c) : a == i.BUFFER && T.onBufferWhenSeekingOrPaused(b, c) : d == j.SEEKING_DURING_PLAYBACK ? a == i.END || a == i.AD_SKIP ? S.onEndOrAdSkip(b, c) : a == i.PLAY ? S.onPlay(b, c) : a == i.BUFFER ? T.onBufferWhenSeekingOrPaused(b, c) : a == i.PAUSE && T.onPauseWhenSeekingDuringPlaybackOrSeekingDuringPause(b, c) : d == j.SEEKING_DURING_BUFFERING ? a == i.PAUSE ? R.onPause(b, c) : a == i.BUFFER ? T.onBufferWhenSeekingOrPaused(b, c) : a == i.PLAY ? T.onPlayWhenSeekingDuringBufferingOrSeekingDuringPause(b, c) : a == i.END || a == i.AD_SKIP ? T.onEndOrAdSkipWhenSeekingDuringBufferingOrSeekingDuringPause(b, c) : a == i.BUFFER_STOP && T.onBufferStopWhenSeekingDuringBufferingOrSeekingDuringPause(b, c) : d == j.PAUSED_DURING_BUFFERING ? a == i.END || a == i.AD_SKIP ? P.onEndOrAdSkip(b, c) : a == i.BUFFER_STOP ? P.onBufferStop(b, c) : a == i.SEEK_START ? P.onSeekStart(b, c) : a == i.PAUSE ? P.onPause(b, c) : a == i.PLAY && P.onPlay(b, c) : d == j.SEEKING_DURING_PAUSE && (a == i.BUFFER ? T.onBufferWhenSeekingOrPaused(b, c) : a == i.PLAY ? T.onPlayWhenSeekingDuringBufferingOrSeekingDuringPause(b, c) : a == i.PAUSE ? T.onPauseWhenSeekingDuringPlaybackOrSeekingDuringPause(b, c) : a == i.END || a == i.AD_SKIP ? T.onEndOrAdSkipWhenSeekingDuringBufferingOrSeekingDuringPause(b, c) : a == i.BUFFER_STOP && T.onBufferStopWhenSeekingDuringBufferingOrSeekingDuringPause(b, c)), e(a) && F.getPlaybackSession().setFirstEventSent(!0) } function m(a, c) { for (var d, e = ka.encodeURIComponent || escape, f = [], g = l.LABELS_ORDER, h = a.split("?"), i = h[0], j = h[1], k = j.split("&"), m = 0, n = k.length; m < n; m++) { var o = k[m].split("="), p = unescape(o[0]), q = unescape(o[1]); p && (c[p] = q) } for (var r = {}, s = 0, t = g.length; s < t; s++) { var u = g[s]; if (c.hasOwnProperty(u)) { var v = c[u]; "undefined" != typeof v && null != v && (r[u] = !0, f.push(e(u) + "=" + e(c[u]))) } } for (var w in c) if (c.hasOwnProperty(w)) { if (r[w]) continue; var x = c[w]; "undefined" != typeof x && null != x && f.push(e(w) + "=" + e(c[w])) } d = i + "?" + f.join("&"), d = d + (d.indexOf("&c8=") < 0 ? "&c8=" + e(la.title) : "") + (d.indexOf("&c7=") < 0 ? "&c7=" + e(la.URL) : "") + (d.indexOf("&c9=") < 0 ? "&c9=" + e(la.referrer) : ""); var y = b.browserAcceptsLargeURLs() ? l.URL_LENGTH_LIMIT : l.RESTRICTED_URL_LENGTH_LIMIT; if (d.length > y && d.indexOf("&") > 0) { var z = d.substr(0, y - 8).lastIndexOf("&"); d = (d.substring(0, z) + "&ns_cut=" + e(d.substring(z + 1))).substr(0, y) } return d } var F, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, $, _, aa, ba, ca, da, ea = this, fa = {}, ga = l.DEFAULT_PAUSED_ON_BUFFERING_INTERVAL, ha = l.THROTTLING_DELAY, ia = {}, ja = !1; b.extend(ea, { getConfiguration: function() { return a || {} }, enableSystemClockJumpsDetection: function(a) { (a < l.SYSTEM_CLOCK_JUMP_DETECTION_MINIMUM_INTERVAL || !a) && (a = l.SYSTEM_CLOCK_JUMP_DETECTION_DEFAULT_INTERVAL), b.onSystemClockJump(function(a) { da = a, ja = !0 }, a) }, createLabels: function(a, c, d) { var e = !1; if (a == i.HEARTBEAT) { var f = isNaN(X) ? W : X; X = d, (d < f || ja) && (e = !0, ja = !1, d < f ? (F.getPlaybackSession().addInternalErrorFlag("1"), F.getLogging().infoLog("System clock jump detected", "to the far past")) : da ? (F.getPlaybackSession().addInternalErrorFlag("3"), F.getLogging().infoLog("System clock jump detected", "to the future")) : (F.getPlaybackSession().addInternalErrorFlag("2"), F.getLogging().infoLog("System clock jump detected", "to the near past")), d = f) } var g = {}; if ("undefined" != typeof document) { var h = document; g.c7 = h.URL, g.c8 = h.title, g.c9 = h.referrer } return g.ns_ts = +new Date + "", g.ns_st_ev = i.toString(a), g.ns_st_mp = l.DEFAULT_PLAYERNAME, g.ns_st_mv = l.STREAMINGANALYTICS_VERSION, g.ns_st_ub = "0", g.ns_st_br = "0", g.ns_st_pn = "1", g.ns_st_tp = "0", g.ns_st_it = k.toString(k.SINGLE_CLIP), g.ns_st_sv = l.STREAMINGANALYTICS_VERSION, g.ns_st_smv = l.MODEL_VERSION, g.ns_type = "hidden", g.ns_st_ec = F.getEventManager().getEventCounter() + "", g.ns_st_ki = F.getKeepAlive().getInterval() + "", F.getPlaybackSession().getAsset().isAutoCalculatePositionsEnabled() ? g.ns_st_po = F.getPlaybackSession().getAsset().getExpectedPlaybackPosition(d) + "" : g.ns_st_po = ca + "", ca = parseInt(g.ns_st_po), b.extend(g, ea.getLabels()), F.getPlaybackSession().createLabels(g, d), b.extend(g, c), e && (F.getPlaybackSession().setPlaybackTimestamp(X - parseInt(g.ns_st_pt)), F.getPlaybackSession().getAsset().setPlaybackTimestamp(X - parseInt(g.ns_st_pt)), F.getPlaybackSession().getAsset().setElapsedTimestamp(X - parseInt(g.ns_st_et)), F.getStateMachine().getCurrentState() == j.BUFFERING_DURING_PLAYBACK && F.getPlaybackSession().getAsset().setBufferingTimestamp(X - parseInt(g.ns_st_bp))), { eventType: a, eventLabels: g } }, newEvent: function(a, c, d, e) { ea.stopDelayedTransitionTimer(); var g = F.getStateMachine().getCurrentState(), h = F.getStateMachine().eventTypeToState(a); if (null == h || h == g) return void F.getLogging().infoLog("Ignored event:", i.toString(a), "during state", b.stateToString(g), d); if (ea.isThrottlingEnabled() && (g == j.PLAYING || g == j.PAUSED) && (h == j.PLAYING || h == j.PAUSED) && !e) { F.getLogging().infoLog("Throttled event:", i.toString(a), "during state", b.stateToString(g), d, ea.getThrottlingDelay(), "ms"); var k = function(a, b, d) { return function() { ea.newEvent(a, c, d, !0) } }(a, h, d); return void(_ = F.getPlatformAPI().setTimeout(k, ea.getThrottlingDelay())) } var l = isNaN(X) ? W : X; X = c; var m = !1; (c < l || ja) && (m = !0, ja = !1, c < l ? (F.getPlaybackSession().addInternalErrorFlag("1"), F.getLogging().infoLog("System clock jump detected", "to the far past")) : da ? (F.getPlaybackSession().addInternalErrorFlag("3"), F.getLogging().infoLog("System clock jump detected", "to the future")) : (F.getPlaybackSession().addInternalErrorFlag("2"), F.getLogging().infoLog("System clock jump detected", "to the near past")), c = l), d.ns_st_po || (F.getPlaybackSession().getAsset().isAutoCalculatePositionsEnabled() ? F.getStateMachine().getCurrentState() == j.IDLE ? d.ns_st_po = "0" : d.ns_st_po = F.getPlaybackSession().getAsset().getExpectedPlaybackPosition(c) + "" : d.ns_st_po = ca + ""), ca = parseInt(d.ns_st_po), F.getPlaybackSession().getAsset().setPlaybackTimeOffset(parseInt(d.ns_st_po)), f(a, c, d); var n = 0; isNaN(F.getStateMachine().getLastStateChangeTimestamp()) || (n = c - F.getStateMachine().getLastStateChangeTimestamp()), F.getStateMachine().newEvent(a, c), m && (h != j.IDLE && h != j.PLAYBACK_NOT_STARTED && h != j.SEEKING_BEFORE_PLAYBACK && h != j.BUFFERING_BEFORE_PLAYBACK && F.getPlaybackSession().getAsset().setElapsedTimestamp(X), h != j.BUFFERING_BEFORE_PLAYBACK && h != j.BUFFERING_DURING_PAUSE && h != j.BUFFERING_DURING_PLAYBACK && h != j.BUFFERING_DURING_SEEKING && h != j.PAUSED_DURING_BUFFERING || (F.getPlaybackSession().setBufferingTimestamp(X), F.getPlaybackSession().getAsset().setBufferingTimestamp(X)), h != j.PLAYING && h != j.BUFFERING_DURING_PLAYBACK || (F.getPlaybackSession().setPlaybackTimestamp(X), F.getPlaybackSession().getAsset().setPlaybackTimestamp(X)), h != j.SEEKING_BEFORE_PLAYBACK && h != j.SEEKING_DURING_BUFFERING && h != j.SEEKING_DURING_PAUSE && h != j.SEEKING_DURING_PLAYBACK && h != j.BUFFERING_DURING_SEEKING || F.getPlaybackSession().getAsset().setSeekingTimestamp(X)), F.getLogging().log("Transition from", b.stateToString(g), "to", b.stateToString(h), "due to event:", i.toString(a)); for (var o = 0, p = aa.length; o < p; o++) aa[o](g, h, d, n) }, newPseudoEvent: function(a, c, d) { if ((a == i.LOAD || a == i.ENGAGE) && F.getStateMachine().getCurrentState() != j.IDLE) return void F.getLogging().infoLog("Ignored pseudo-event:", i.toString(a), "during state", b.stateToString(F.getStateMachine().getCurrentState()), d); a == i.ERROR && null == d.ns_st_er && (d.ns_st_er = h.UNKNOWN_VALUE), a == i.TRANSFER && null == d.ns_st_rp && (d.ns_st_rp = h.UNKNOWN_VALUE); var e, f, g, k, l = !0, m = !1; switch (a) { case i.BIT_RATE: e = "ns_st_br", f = "ns_st_pbr"; break; case i.PLAYBACK_RATE: e = "ns_st_rt", f = "ns_st_prt"; break; case i.VOLUME: e = "ns_st_vo", f = "ns_st_pvo"; break; case i.WINDOW_STATE: e = "ns_st_ws", f = "ns_st_pws"; break; case i.AUDIO: e = "ns_st_at", f = "ns_st_pat"; break; case i.VIDEO: e = "ns_st_vt", f = "ns_st_pvt"; break; case i.SUBS: e = "ns_st_tt", f = "ns_st_ptt"; break; case i.CDN: e = "ns_st_cdn", f = "ns_st_pcdn"; break; default: l = !1 } if (l && e in d) switch (k = d[e], a) { case i.BIT_RATE: case i.VOLUME: case i.WINDOW_STATE: e in ia && (g = ia[e], d[f] = g, m = k == g + ""), ia[e] = d[e]; break; case i.AUDIO: case i.VIDEO: case i.SUBS: case i.CDN: F.getPlaybackSession().getAsset().hasInternalLabel(e) && (g = F.getPlaybackSession().getAsset().getInternalLabel(e), d[f] = g, m = k == g + ""), F.getPlaybackSession().getAsset().setInternalLabel(e, d[e]); break; case i.PLAYBACK_RATE: g = F.getPlaybackSession().getAsset().getPlaybackRate(), d[f] = g + "" } if (l && F.getStateMachine().getCurrentState() != j.PLAYING && F.getStateMachine().getCurrentState() != j.BUFFERING_DURING_PLAYBACK || l && m) return a == i.PLAYBACK_RATE && F.getPlaybackSession().getAsset().setPlaybackRate(parseInt(d.ns_st_rt)), void F.getLogging().infoLog("No measurement send for the pseudo-event:", i.toString(a), "during state", b.stateToString(F.getStateMachine().getCurrentState()), d); var n = isNaN(X) ? W : X; X = c; var o = !1; (c < n || ja) && (o = !0, ja = !1, c < n ? (F.getPlaybackSession().addInternalErrorFlag("1"), F.getLogging().infoLog("System clock jump detected", "to the far past")) : da ? (F.getPlaybackSession().addInternalErrorFlag("3"), F.getLogging().infoLog("System clock jump detected", "to the future")) : (F.getPlaybackSession().addInternalErrorFlag("2"), F.getLogging().infoLog("System clock jump detected", "to the near past")), c = n), d.ns_st_po || (F.getPlaybackSession().getAsset().isAutoCalculatePositionsEnabled() ? d.ns_st_po = F.getPlaybackSession().getAsset().getExpectedPlaybackPosition(c) + "" : d.ns_st_po = ca + ""), ca = parseInt(d.ns_st_po), F.getPlaybackSession().getAsset().setPlaybackTimeOffset(parseInt(d.ns_st_po)), F.getStateMachine().getCurrentState() != j.IDLE && F.getStateMachine().getCurrentState() != j.PLAYBACK_NOT_STARTED && F.getStateMachine().getCurrentState() != j.SEEKING_BEFORE_PLAYBACK && F.getStateMachine().getCurrentState() != j.BUFFERING_BEFORE_PLAYBACK && (F.getPlaybackSession().getAsset().addElapsedTime(c), F.getPlaybackSession().getAsset().setElapsedTimestamp(c)), F.getStateMachine().getCurrentState() != j.PLAYING && F.getStateMachine().getCurrentState() != j.BUFFERING_DURING_PLAYBACK || (F.getPlaybackSession().addPlaybackTime(c), F.getPlaybackSession().setPlaybackTimestamp(c), F.getPlaybackSession().getAsset().addPlaybackTime(c), F.getPlaybackSession().getAsset().setPlaybackTimestamp(c), F.getPlaybackSession().getAsset().addInterval(parseInt(d.ns_st_po)), F.getPlaybackSession().getAsset().setPlaybackStartPosition(parseInt(d.ns_st_po))), F.getStateMachine().getCurrentState() != j.BUFFERING_BEFORE_PLAYBACK && F.getStateMachine().getCurrentState() != j.BUFFERING_DURING_PAUSE && F.getStateMachine().getCurrentState() != j.BUFFERING_DURING_PLAYBACK && F.getStateMachine().getCurrentState() != j.BUFFERING_DURING_SEEKING || (F.getPlaybackSession().addBufferingTime(c), F.getPlaybackSession().setBufferingTimestamp(c), F.getPlaybackSession().getAsset().addBufferingTime(c), F.getPlaybackSession().getAsset().setBufferingTimestamp(c)); var p = ea.createLabels(a, d, c); F.getPlaybackSession().getAsset().updateDeltaLabels(p.eventLabels), F.getPlaybackSession().getAsset().updateIndependentLabels(p.eventLabels), F.getEventManager().newEvent(p), a == i.PLAYBACK_RATE && F.getPlaybackSession().getAsset().setPlaybackRate(parseInt(d.ns_st_rt)), o && (F.getStateMachine().getCurrentState() != j.PLAYING && F.getStateMachine().getCurrentState() != j.BUFFERING_DURING_PLAYBACK || (F.getPlaybackSession().setPlaybackTimestamp(X), F.getPlaybackSession().getAsset().setPlaybackTimestamp(X)), F.getStateMachine().getCurrentState() != j.IDLE && F.getStateMachine().getCurrentState() != j.PLAYBACK_NOT_STARTED && F.getStateMachine().getCurrentState() != j.SEEKING_BEFORE_PLAYBACK && F.getStateMachine().getCurrentState() != j.BUFFERING_BEFORE_PLAYBACK && F.getPlaybackSession().getAsset().setElapsedTimestamp(X), F.getStateMachine().getCurrentState() != j.BUFFERING_BEFORE_PLAYBACK && F.getStateMachine().getCurrentState() != j.BUFFERING_DURING_PAUSE && F.getStateMachine().getCurrentState() != j.BUFFERING_DURING_PLAYBACK && F.getStateMachine().getCurrentState() != j.BUFFERING_DURING_SEEKING && F.getStateMachine().getCurrentState() != j.PAUSED_DURING_BUFFERING || (F.getPlaybackSession().setBufferingTimestamp(X), F.getPlaybackSession().getAsset().setBufferingTimestamp(X)), F.getStateMachine().getCurrentState() != j.SEEKING_BEFORE_PLAYBACK && F.getStateMachine().getCurrentState() != j.SEEKING_DURING_BUFFERING && F.getStateMachine().getCurrentState() != j.SEEKING_DURING_PAUSE && F.getStateMachine().getCurrentState() != j.SEEKING_DURING_PLAYBACK && F.getStateMachine().getCurrentState() != j.BUFFERING_DURING_SEEKING || F.getPlaybackSession().getAsset().setSeekingTimestamp(X)) }, getState: function() { return F.getStateMachine().getCurrentState() }, addListener: function(a) { aa.push(a) }, removeListener: function(a) { aa.splice(b.indexOf(a, aa), 1) }, getLabel: function(a) { return ia[a] }, getLabels: function() { return ia }, setLabel: function(a, b) { null == b ? delete ia[a] : ia[a] = b }, setLabels: function(a) { for (var b in a) a.hasOwnProperty(b) && ea.setLabel(b, a[b]) }, getPlatformAPI: function() { return F.getAppCore() ? F.getAppCore().getPlatformAPI() : g }, getExports: function() { return fa }, isProperlyInitialized: function() { var a = F.getAppCore().getAppContext(), b = F.getAppCore().getSalt(), c = F.getAppCore().getPixelURL(); return a && c && b }, setThrottlingDelay: function(a) { ha = a }, getThrottlingDelay: function() { return ha }, isThrottlingEnabled: function() { return $ }, setThrottlingEnabled: function(a) { $ = a }, isLoadingTimeSent: function() { return U }, setLoadingTimeSent: function(a) { U = a }, getLoadTimeOffset: function() { return V }, setLoadTimeOffset: function(a) { V = a }, getInitTimestamp: function() { return W }, setPauseOnBufferingInterval: function(a) { ga = a }, getPauseOnBufferingInterval: function() { return ga }, isPauseOnBufferingEnabled: function() { return Y }, setPauseOnBufferingEnabled: function(a) { Y = a }, startPausedOnBufferingTimer: function(a, c) { ea.stopPausedOnBufferingTimer(), Z = ea.getPlatformAPI().setTimeout(function() { var a = {}, d = b.fixEventTime(a), e = parseInt(c.ns_st_po); a.ns_st_po = e + "", ea.newEvent(i.PAUSE_ON_BUFFERING, d, a) }, ga) }, stopPausedOnBufferingTimer: function() { null != Z && (ea.getPlatformAPI().clearTimeout(Z), Z = null) }, stopDelayedTransitionTimer: function() { _ && (ea.getPlatformAPI().clearTimeout(_), _ = null) }, setLiveEndpointURL: function(a) { if (null == a || 0 == a.length) return null; var b = decodeURIComponent || unescape, c = a.indexOf("?"); if (c >= 0) { if (c < a.length - 1) { for (var d = a.substring(c + 1).split("&"), e = 0, f = d.length; e < f; e++) { var g = d[e], h = g.split("="); 2 == h.length ? ea.setLabel(h[0], b(h[1])) : 1 == h.length && ea.setLabel(l.PAGE_NAME_LABEL, b(h[0])) } a = a.substring(0, c + 1) } } else a += "?"; return ba = a }, getLiveEndpointURL: function() { return ba ? ba : "undefined" != typeof ns_p && "string" == typeof ns_p.src ? ba = ns_p.src.replace(/&/, "&").replace(/&ns__t=\\d+/, "") : "string" == typeof ns_pixelUrl ? ba = ns_pixelUrl.replace(/&/, "&").replace(/&ns__t=\\d+/, "") : null }, getStaSM: function() { return F }, resetPlaybackSession: function(a) { var b = F.getPlaybackSession(); F.setPlaybackSession(new n(F)), n.resetPlaybackSession(F, b, a) }, resetHeartbeat: function() { F.getHeartbeat().pause(); var a = F.getHeartbeat().getIntervals(); F.setHeartbeat(new p(F)), F.getHeartbeat().setIntervals(a) } }); var ka, la; b.isBrowser() ? (ka = window, la = document) : (ka = {}, la = { location: { href: "" }, title: "", URL: "", referrer: "", cookie: "" }), b.extend(ea, { prepareUrl: m }), d() } }(), G = function() { return function(a) { var c, d, e, f, g, h, i, j = this; b.extend(j, { getAppCore: function() { return c }, getStaCore: function() { return a }, getEventManager: function() { return d }, getStateMachine: function() { return e }, getHeartbeat: function() { return f }, getKeepAlive: function() { return g }, getPlaybackSession: function() { return h }, getLogging: function() { return i }, setAppCore: function(a) { c = a }, setKeepAlive: function(a) { g = a }, setHeartbeat: function(a) { f = a }, setEventManager: function(a) { d = a }, setStateMachine: function(a) { e = a }, setPlaybackSession: function(a) { h = a }, setLogging: function(a) { i = a } }) } }(), H = function() { return function(a) { function c() { a = b.extend({}, a), f = new F(a), f.getStaSM().getLogging().log("New StreamingAnalytics instance with configuration", a) } function d(a) { var c, d; if (c = "object" == typeof arguments[1] ? arguments[1] : "object" == typeof arguments[2] ? arguments[2] : {}, d = "number" == typeof arguments[1] ? arguments[1] : "number" == typeof arguments[2] ? arguments[2] : NaN, i.toString(a)) { c = b.jsonObjectToStringDictionary(c); var e = b.fixEventTime(c); c.ns_st_po || isNaN(d) || (c.ns_st_po = b.parseInteger(d, 0) + ""), a == i.PLAY || a == i.PAUSE || a == i.BUFFER || a == i.END || a == i.SEEK_START || a == i.AD_SKIP || a == i.BUFFER_STOP ? f.newEvent(a, e, c) : f.newPseudoEvent(a, e, c) } } function e() { h && f.getStaSM().getStateMachine().getCurrentState() != j.IDLE && g.notifyEnd() } var f, g = this, h = !0; b.extend(this, { isProperlyInitialized: function() { return f.isProperlyInitialized() }, reset: function(a) { d(i.END); var b = f; b.getStaSM().getKeepAlive().stop(), b.getStaSM().getHeartbeat().pause(), f = new F(b.getConfiguration()), n.resetPlaybackSession(f.getStaSM(), b.getStaSM().getPlaybackSession(), a) }, setPauseOnBufferingInterval: function(a) { f.setPauseOnBufferingInterval(a) }, getPauseOnBufferingInterval: function() { return f.getPauseOnBufferingInterval() }, setKeepAliveInterval: function(a) { f.getStaSM().getKeepAlive().setInterval(a) }, getKeepAliveInterval: function() { return f.getStaSM().getKeepAlive().getInterval() }, setHeartbeatIntervals: function(a) { f.getStaSM().getHeartbeat().setIntervals(a) }, notifyPlay: function(a, b) { f.getStaSM().getLogging().apiCall("notifyPlay", a, b), d(i.PLAY, a, b) }, notifyPause: function(a, b) { f.getStaSM().getLogging().apiCall("notifyPause", a, b), d(i.PAUSE, a, b) }, notifyEnd: function(a, b) { f.getStaSM().getLogging().apiCall("notifyEnd", a, b), d(i.END, a, b) }, notifyBufferStart: function(a, b) { f.getStaSM().getLogging().apiCall("notifyBufferStart", a, b), d(i.BUFFER, a, b) }, notifyBufferStop: function(a, b) { f.getStaSM().getLogging().apiCall("notifyBufferStop", a, b), d(i.BUFFER_STOP, a, b) }, notifyLoad: function(a, b) { f.getStaSM().getLogging().apiCall("notifyLoad", a, b), d(i.LOAD, a, b) }, notifyEngage: function(a, b) { f.getStaSM().getLogging().apiCall("notifyEngage", a, b), d(i.ENGAGE, a, b) }, notifySeekStart: function(a, b) { f.getStaSM().getLogging().apiCall("notifySeekStart", a, b), d(i.SEEK_START, a, b) }, notifySkipAd: function(a, b) { f.getStaSM().getLogging().apiCall("notifySkipAd", a, b), d(i.AD_SKIP, a, b) }, notifyCallToAction: function(a, b) { f.getStaSM().getLogging().apiCall("notifyCallToAction", a, b), d(i.CTA, a, b) }, notifyError: function(a, b) { f.getStaSM().getLogging().apiCall("notifyError", a, b), d(i.ERROR, a, b) }, notifyTransferPlayback: function(a, b) { f.getStaSM().getLogging().apiCall("notifyTransferPlayback", a, b), d(i.TRANSFER, a, b) }, notifyDrmFail: function(a, b) { f.getStaSM().getLogging().apiCall("notifyDrmFail", a, b), d(i.DRM_FAILED, a, b) }, notifyDrmApprove: function(a, b) { f.getStaSM().getLogging().apiCall("notifyDrmApprove", a, b), d(i.DRM_APPROVED, a, b) }, notifyDrmDeny: function(a, b) { f.getStaSM().getLogging().apiCall("notifyDrmDeny", a, b), d(i.DRM_DENIED, a, b) }, notifyChangeBitrate: function(a, b, c) { if (f.getStaSM().getLogging().apiCall("notifyChangeBitrate", a, b, c), null != a) { var e = c || {}; e.ns_st_br = a + "", d(i.BIT_RATE, e, b) } }, notifyChangePlaybackRate: function(a, b, c) { if (f.getStaSM().getLogging().apiCall("notifyChangePlaybackRate", a, b, c), null != a) { var e = c || {}; e.ns_st_rt = a + "", d(i.PLAYBACK_RATE, e, b) } }, notifyChangeVolume: function(a, b, c) { if (f.getStaSM().getLogging().apiCall("notifyChangeVolume", a, b, c), null != a) { var e = c || {}; e.ns_st_vo = a + "", d(i.VOLUME, e, b) } }, notifyChangeWindowState: function(a, b, c) { if (f.getStaSM().getLogging().apiCall("notifyChangeWindowState", a, b, c), null != a) { var e = c || {}; e.ns_st_ws = a + "", d(i.WINDOW_STATE, e, b) } }, notifyChangeAudioTrack: function(a, b, c) { if (f.getStaSM().getLogging().apiCall("notifyChangeAudioTrack", a, b, c), null != a) { var e = c || {}; e.ns_st_at = a + "", d(i.AUDIO, e, b) } }, notifyChangeVideoTrack: function(a, b, c) { if (f.getStaSM().getLogging().apiCall("notifyChangeVideoTrack", a, b, c), null != a) { var e = c || {}; e.ns_st_vt = a + "", d(i.VIDEO, e, b) } }, notifyChangeSubtitleTrack: function(a, b, c) { if (f.getStaSM().getLogging().apiCall("notifyChangeSubtitleTrack", a, b, c), null != a) { var e = c || {}; e.ns_st_tt = a + "", d(i.SUBS, e, b) } }, notifyChangeCdn: function(a, b, c) { if (f.getStaSM().getLogging().apiCall("notifyChangeCdn", a, b, c), null != a) { var e = c || {}; e.ns_st_cdn = a + "", d(i.CDN, e, b) } }, notifyCustomEvent: function(a, b) { f.getStaSM().getLogging().apiCall("notifyCustomEvent", a, b), d(i.CUSTOM, a, b) }, getLabels: function() { return f.getLabels() }, getState: function() { return f.getStaSM().getStateMachine().getCurrentState() }, setLabels: function(a) { f.setLabels(a) }, getLabel: function(a) { return f.getLabel(a) }, setLabel: function(a, b) { f.setLabel(a, b) }, getLoadTimeOffset: function() { return f.getLoadTimeOffset() }, setLoadTimeOffset: function(a) { f.setLoadTimeOffset(a) }, setLiveEndpointURL: function(a) { return f.setLiveEndpointURL(a) }, getLiveEndpointURL: function() { return f.getLiveEndpointURL() }, isPauseOnBufferingEnabled: function() { return f.isPauseOnBufferingEnabled() }, setPauseOnBufferingEnabled: function(a) { f.setPauseOnBufferingEnabled(a) }, isThrottlingEnabled: function() { return f.isThrottlingEnabled() }, setThrottlingEnabled: function(a) { f.setThrottlingEnabled(a) }, setThrottlingDelay: function(a) { f.setThrottlingDelay(a) }, getThrottlingDelay: function() { return f.getThrottlingDelay() }, setPlaybackIntervalMergeTolerance: function(a) { f.getStaSM().getPlaybackSession().getAsset().setPlaybackIntervalMergeTolerance(a) }, getPlaybackIntervalMergeTolerance: function() { return f.getStaSM().getPlaybackSession().getAsset().getPlaybackIntervalMergeTolerance() }, createPlaybackSession: function(a) { f.getStaSM().getLogging().apiCall("createPlaybackSession", a), a = b.jsonObjectToStringDictionary(a); var c = f.getStaSM().getStateMachine().getCurrentState(); c != j.IDLE && (f.getStaSM().getLogging().infoLog("Ending the current Clip. It was in state:", b.stateToString(c)), g.notifyEnd()), f.getStaSM().getPlaybackSession().isPlaybackSessionStarted() && f.resetPlaybackSession(), f.getStaSM().getPlaybackSession().setLabels(a) }, getVersion: function() { return l.STREAMINGANALYTICS_VERSION }, addListener: function(a) { f.addListener(a) }, removeListener: function(a) { f.removeListener(a) }, addMeasurementListener: function(a) { f.getStaSM().getEventManager().addMeasurementListener(a) }, removeMeasurementListener: function(a) { f.getStaSM().getEventManager().removeMeasurementListener(a) }, getPlaybackSession: function() { return f.getStaSM().getPlaybackSession() }, setExitEndEventEnabled: function(a) { h = a }, isExitEndEventEnabled: function() { return h }, getPlatformAPI: function() { return f.getPlatformAPI() }, _getLogHistory: function() { return f.getStaSM().getLogging().getLogHistory() } }), b.isBrowser() && (window.addEventListener ? (window.addEventListener("beforeunload", e), window.addEventListener("unload", e)) : window.attachEvent && (window.attachEvent("onbeforeunload", e), window.attachEvent("onunload", e))), c() } }(); return H.PlayerEvents = i, H.InternalStates = j, H.ImplementationType = k, H.Constants = l, H }(), a.ReducedRequirementsStreamingAnalytics = a.ReducedRequirementsStreamingAnalytics || function() { var d = { LongFormOnDemand: "12", ShortFormOnDemand: "11", Live: "13", UserGeneratedLongFormOnDemand: "22", UserGeneratedShortFormOnDemand: "21", UserGeneratedLive: "23", Bumper: "99", Other: "00" }, e = { LinearOnDemandPreRoll: "11", LinearOnDemandMidRoll: "12", LinearOnDemandPostRoll: "13", LinearLive: "21", BrandedOnDemandPreRoll: "31", BrandedOnDemandMidRoll: "32", BrandedOnDemandPostRoll: "33", BrandedOnDemandContent: "34", BrandedOnDemandLive: "35", Other: "00" }, f = a.StreamingAnalytics, g = a.StreamingAnalytics.InternalStates || null, h = a.StreamingAnalytics.ImplementationType || null, i = null != a.StreamingAnalytics.InternalStates && null != a.StreamingAnalytics.ImplementationType, j = a.StreamingAnalytics.Constants, k = function(a) { function k() { i && (b.exists(a) && (a.customerC2 || a.publisherId) || b.getNamespace().comScore ? t = new f(a) : w.error("Cannot instantiate StreamingAnalytics", "The property publisherId was not provided (or incorrectly provided) in the StreamingAnalytics configuration."), t && t.setLabel("ns_st_it", h.toString(h.REDUCED))) } function l(a) { for (var b in j.STANDARD_METADATA_LABELS) if (j.STANDARD_METADATA_LABELS.hasOwnProperty(b) && !m(j.STANDARD_METADATA_LABELS[b], q, a)) return !1; return !0 } function m(a, c, d) { return !!(b.exists(a) && b.exists(c) && b.exists(d) && (c.hasOwnProperty(a) && d.hasOwnProperty(a) && c[a] === d[a] || !c.hasOwnProperty(a) && !d.hasOwnProperty(a))) } function n(a) { t.getPlaybackSession().setAsset(a), q = a, t.notifyPlay() } function o(a) { var b = a || {}; b.ns_st_ad = "1", b.ns_st_an = ++r + "", t.getPlaybackSession().setAsset(b), t.notifyPlay(), s = !1 } function p(a, b) { v == u.None && (v = b), s && v == b && l(a) ? (t.getPlaybackSession().getAsset().setLabels(a), t.getState() != g.PLAYING && t.notifyPlay()) : n(a), s = !0, v = b } var q = null, r = 0, s = !1, t = null, u = { None: 0, AudioContent: 1, VideoContent: 2 }, v = u.None, w = new c("TTSTA", (a || {}).debug); b.extend(this, { playVideoAdvertisement: function(a, c) { if (t) { w.apiCall("playVideoAdvertisement", a, c); var d = { ns_st_ct: "va" }; c ? d.ns_st_ct = "va" + c : w.warn("Calling \'playVideoAdvertisement\' without specifying the media type as a second parameter."), c != e.LinearLive && c != e.BrandedOnDemandLive || (d.ns_st_li = "1"), a && b.extend(d, a), o(d) } }, playAudioAdvertisement: function(a, c) { if (t) { w.apiCall("playAudioAdvertisement", a, c); var d = { ns_st_ct: "aa" }; c ? d.ns_st_ct = "aa" + c : w.warn("Calling \'playAudioAdvertisement\' without specifying the media type as a second parameter."), c != e.LinearLive && c != e.BrandedOnDemandLive || (d.ns_st_li = "1"), a && b.extend(d, a), o(d) } }, playVideoContentPart: function(a, c) { if (t) { w.apiCall("playVideoContentPart", a, c); var e = { ns_st_ct: "vc" }; c ? e.ns_st_ct = "vc" + c : w.warn("Calling \'playVideoContentPart\' without specifying the media type as a second parameter."), c != d.Live && c != d.UserGeneratedLive || (e.ns_st_li = "1"), a && b.extend(e, a), p(e, u.VideoContent) } }, playAudioContentPart: function(a, c) { if (t) { w.apiCall("playAudioContentPart", a, c); var e = { ns_st_ct: "ac" }; c ? e.ns_st_ct = "ac" + c : w.warn("Calling \'playAudioContentPart\' without specifying the media type as a second parameter."), c != d.Live && c != d.UserGeneratedLive || (e.ns_st_li = "1"), a && b.extend(e, a), p(e, u.AudioContent) } }, stop: function() { t && (w.apiCall("stop"), t.notifyPause()) } }), k() }; return k.ContentType = d, k.AdType = e, k }(), a }), function(a) { "use strict"; return "undefined" != typeof ns_ && ns_.StreamingAnalytics ? void a(ns_) : void("undefined" != typeof console && console.error && console.error("The comScore Streaming Analytics library was not properly loaded.")) }(function(a) { "use strict"; function b(g, h, i, j, k) { function l() { var b = {}; b.debug = g.debug, b.publisherId = g.publisherId || g.c2, b.secure = g.secure, b.liveEndpointURL = g.logurl || g.liveEndpointURL, Ra = new a.StreamingAnalytics(b), c.extend(Ea, Ra), c.extend(Ea, { notifyPlay: M, notifyPause: N, notifyEnd: O, notifyBufferStart: P, notifyBufferStop: Q, notifyLoad: R, notifyEngage: S, notifySeekStart: T, notifySkipAd: U, notifyCallToAction: V, notifyError: W, notifyTransferPlayback: X, notifyDrmFail: Y, notifyDrmApprove: Z, notifyDrmDeny: $, notifyChangeBitrate: _, notifyChangePlaybackRate: aa, notifyChangeVolume: ba, notifyChangeWindowState: ca, notifyChangeAudioTrack: da, notifyChangeVideoTrack: ea, notifyChangeSubtitleTrack: fa, notifyChangeCDN: ga, notifyCustomEvent: ha, createPlaybackSession: ma, getPlaybackSession: na, setAsset: la, setLabel: oa, setLabels: pa, getLabels: qa, getLabel: ra, setAssetLabel: sa, setPlaybackSessionLabel: ta, onGetLabels: L, labelMapping: Va, release: m, log: Aa, handleSettings: wa, getGenericPluginVersion: n, setDuration: K, setVideoSize: J, setDetectSeek: I, setDetectPause: H, setDetectPlay: G, setDetectEnd: F, setSmartStateDetection: E, setPauseDetectionErrorMargin: w, setEndDetectionErrorMargin: x, setSeekDetectionMinQuotient: y, setPulseSamplingInterval: z, setPulseSamplingIntervalBackground: A, setPulseMaxDelay: B, setMaximumNumberOfEntriesInHistory: C, setMinimumNumberOfTimeUpdateEventsBeforeDetectingSeek: D }), Ea.setLabels({ ns_st_mp: h, ns_st_pv: i, ns_st_mv: j }, !0), g && wa(g), k.init && k.init.call(Ea, null), _a && p() } function m() { k.release && k.release.call(Ea), q(), Ra.reset(), Ra = null, u(), Sa = [], Ba = void 0, Ta = -1, Ca = Ga, Ua = -1 } function n() { return Fa } function o() { return c.hasPageVisibilityAPISupport && c.isTabInBackground() ? Oa : Na } function p() { q(), bb = NaN, cb = [], kb = !0, Da = setInterval(r, o()), t() } function q() { "undefined" != typeof Da && (clearInterval(Da), Da = void 0) } function r() { if (!_a) return void q(); if (db) return void(db = !1); var b = +new Date, c = b - bb, d = o() + Qa, f = bb; if (bb = b, !isNaN(f) && c > d) return void p(); var g = k.position && k.position.call(Ea, null) || 0, h = !1; if (g != cb[cb.length - 1]) { if (cb.push(Math.abs(g)), cb.length > 1 && cb[cb.length - 1] < cb[cb.length - 2]) { var i = cb[cb.length - 1]; cb = [], cb[0] = i, Xa && (h = !0) } if (!h && cb.length < Ma) return } cb.length > Pa && (cb = cb.slice(-Math.floor(Pa / 2))), Xa && !h && (h = s()); var j = Ra.getState(); switch (j) { case e.IDLE: case e.PAUSED: case e.PLAYBACK_NOT_STARTED: case e.BUFFERING_BEFORE_PLAYBACK: case e.BUFFERING_DURING_PLAYBACK: case e.BUFFERING_DURING_SEEKING: case e.BUFFERING_DURING_PAUSE: case e.PAUSED_DURING_BUFFERING: case e.SEEKING_BEFORE_PLAYBACK: case e.SEEKING_DURING_PLAYBACK: case e.SEEKING_DURING_BUFFERING: case e.SEEKING_DURING_PAUSE: if (Za && g > ab && !h && !v(g)) { if (k.preMeasurement && !k.preMeasurement.call(Ea, j, a.StreamingAnalytics.PlayerEvents.PLAY)) break; var l = cb[cb.length - 1]; kb && l < Ja ? Ea.notifyPlay(0) : Ea.notifyPlay(l), kb = !1; break } if (Xa && h && j != e.SEEKING_BEFORE_PLAYBACK && j != e.SEEKING_DURING_PLAYBACK && j != e.SEEKING_DURING_BUFFERING && j != e.SEEKING_DURING_PAUSE) { Ea.notifySeekStart(cb[0]); break } if ($a && j != e.IDLE && j != e.PLAYBACK_NOT_STARTED && j != e.BUFFERING_BEFORE_PLAYBACK && j != e.SEEKING_BEFORE_PLAYBACK && v(g)) { if (k.preMeasurement && !k.preMeasurement.call(Ea, j, a.StreamingAnalytics.PlayerEvents.END)) break; kb = !0; var m = parseInt(eb.ns_st_cl || Ra.getPlaybackSession().getAsset().getLabel("ns_st_cl")); !isNaN(m) && m > 0 ? Ea.notifyEnd(m) : Ea.notifyEnd(g) } break; case e.PLAYING: if (Xa && h) { if (k.preMeasurement && !k.preMeasurement.call(Ea, j, a.StreamingAnalytics.PlayerEvents.PAUSE)) break; kb = !1, Ea.notifySeekStart(ab) } else if ($a && v(g)) { if (k.preMeasurement && !k.preMeasurement.call(Ea, j, a.StreamingAnalytics.PlayerEvents.END)) break; kb = !0; var m = parseInt(eb.ns_st_cl || Ra.getPlaybackSession().getAsset().getLabel("ns_st_cl")); !isNaN(m) && m > 0 ? Ea.notifyEnd(m) : Ea.notifyEnd(g) } else if (Ya && Math.abs(g - ab) <= Ha) { if (k.preMeasurement && !k.preMeasurement.call(Ea, j, a.StreamingAnalytics.PlayerEvents.PAUSE)) break; kb = !1, Ea.notifyPause(ab) } } j !== Ra.getState() && (k.postMeasurement && k.postMeasurement.call(Ea, Ra.getState()), Ra.getState() != e.PLAYING && (cb = [])), ab = g } function s() { if (cb.length < 2) return !1; if (cb[cb.length - 1] < cb[cb.length - 2]) return !0; for (var a = o(), b = 0, c = 0; c < cb.length; c++) b = (parseFloat(b) + Ka[cb.length - 2][c] * cb[c]).toFixed(5); return b = parseFloat(b), b / a > La } function t() { if ("undefined" != typeof document && document.addEventListener && c.hasPageVisibilityAPISupport() && !mb) { mb = !0; var a = c.getPageVisibilityAPI(); document.addEventListener(a.visibilityChange, p, !1) } } function u() { if ("undefined" != typeof document && document.addEventListener && c.hasPageVisibilityAPISupport() && mb) { mb = !1; var a = c.getPageVisibilityAPI(); document.removeEventListener(a.visibilityChange, p, !1) } } function v(a) { var b = parseInt(eb.ns_st_cl || Ra.getPlaybackSession().getAsset().getLabel("ns_st_cl")); return !isNaN(b) && b > 0 && (a > b || Math.abs(a - b) < Ia) } function w(a) { a && (Ha = a) } function x(a) { a && (Ia = a) } function y(a) { a && a > 1 && (La = a) } function z(a) { "number" == typeof a && a >= 0 && (Na = a) } function A(a) { "number" == typeof a && a >= 0 && (Oa = a) } function B(a) { "number" == typeof a && a >= 0 && (Qa = a) } function C(a) { a && a <= 13 && a >= 2 && (Pa = a) } function D(a) { a && a >= 2 && a <= 13 && (Ma = a) } function E(a) { _a = a || !1, _a ? p() : q() } function F(a) { $a = a || !1 } function G(a) { Za = a || !1 } function H(a) { Ya = a || !1 } function I(a) { Xa = a || !1 } function J(a) { Ra.getPlaybackSession().getAsset().setLabel("ns_st_cs", a ? a : 0) } function K(a) { Ra.getPlaybackSession().getAsset().setLabel("ns_st_cl", a && a >= 0 ? a : 0) } function L(a) { "function" == typeof a && Sa.push(a) } function M() { if (!ib && !jb) { kb = !1; var a = ka(f.PLAY, ia(arguments), ja(arguments)); Ra.notifyPlay(ia(arguments), a), _a && (cb = [], ab = a) } } function N() { if (!ib && !jb) { kb = !1; var a = ka(f.PAUSE, ia(arguments), ja(arguments)); Ra.notifyPause(ia(arguments), a), _a && (cb = [], ab = a) } } function O() { if (!ib && !jb) { kb = !0; var a = ka(f.END, ia(arguments), ja(arguments)); _a && (cb = [], ab = a, db = !0), Ra.notifyEnd(ia(arguments), a) } } function P() { if (!ib && !jb) { var a = ka(f.BUFFER, ia(arguments), ja(arguments)); Ra.notifyBufferStart(ia(arguments), a) } } function Q() { if (!ib && !jb) { var a = ka(f.BUFFER_STOP, ia(arguments), ja(arguments)); Ra.notifyBufferStop(ia(arguments), a) } } function R() { if (!ib && !jb && g.enableLoadNotification) { var a = ka(f.LOAD, ia(arguments), ja(arguments)); Ra.notifyLoad(ia(arguments), a) } } function S() { if (!ib && !jb && g.enableEngageNotification) { var a = ka(f.ENGAGE, ia(arguments), ja(arguments)); Ra.notifyEngage(ia(arguments), a) } } function T() { if (!ib && !jb) { kb = !1; var a = ka(f.SEEK_START, ia(arguments), ja(arguments)); _a && (cb = [], ab = a), Ra.notifySeekStart(ia(arguments), a) } } function U() { if (!ib && !jb) { if (!g.enableSkipAdNotification) return void O.apply(this, Array.prototype.slice.call(arguments)); kb = !0; var a = ka(f.AD_SKIP, ia(arguments), ja(arguments)); _a && (cb = [], ab = a, db = !0), Ra.notifySkipAd(ia(arguments), a) } } function V() { if (!ib && !jb && g.enableCallToActionNotification) { var a = ka(f.CTA, ia(arguments), ja(arguments)); Ra.notifyCallToAction(ia(arguments), a) } } function W() { if (!ib && !jb && g.enableErrorNotification) { var a = ka(f.ERROR, ia(arguments), ja(arguments)); Ra.notifyError(ia(arguments), a) } } function X() { if (!ib && !jb && g.enableTransferPlaybackNotification) { var a = ka(f.TRANSFER, ia(arguments), ja(arguments)); Ra.notifyTransferPlayback(ia(arguments), a) } } function Y() { if (!ib && !jb && g.enableDrmFailNotification) { var a = ka(f.DRM_FAILED, ia(arguments), ja(arguments)); Ra.notifyDrmFail(ia(arguments), a) } } function Z() { if (!ib && !jb && g.drmApproveNotification) { var a = ka(f.DRM_APPROVED, ia(arguments), ja(arguments)); Ra.notifyDrmApprove(ia(arguments), a) } } function $() { if (!ib && !jb && g.drmDenyNotification) { var a = ka(f.DRM_DENIED, ia(arguments), ja(arguments)); Ra.notifyDrmDeny(ia(arguments), a) } } function _(a, b, c) { if (!ib && !jb) { if (!g.enableBitrateNotification) return void oa("ns_st_br", a, !0); var d = [b, c], e = ka(f.BIT_RATE, ia(d), ja(d)); Ra.notifyChangeBitrate(a, e, ia(d)) } } function aa(a, b, c) { if (!ib && !jb) { var d = [b, c], e = ka(f.PLAYBACK_RATE, ia(d), ja(d)); Ra.notifyChangePlaybackRate(a, e, ia(d)) } } function ba(a, b, c) { if (!ib && !jb) { if (!g.enableVolumeChangeNotification) return void oa("ns_st_vo", a, !0); var d = [b, c], e = ka(f.VOLUME, ia(d), ja(d)); Ra.notifyChangeVolume(a, e, ia(d)) } } function ca(a, b, c) { if (!ib && !jb) { if (!g["enableWindowStateChangeNotification "]) return void oa("ns_st_ws", a, !0); var d = [b, c], e = ka(f.WINDOW_STATE, ia(d), ja(d)); Ra.notifyChangeWindowState(a, e, ia(d)) } } function da(a, b, c) { if (!ib && !jb) { if (!g.enableAudioTrackChangeNotification) return void oa("ns_st_at", a, !0); var d = [b, c], e = ka(f.AUDIO, ia(d), ja(d)); Ra.notifyChangeAudioTrack(a, e, ia(d)) } } function ea(a, b, c) { if (!ib && !jb) { if (!g.enableVideoTrackChangeNotification) return void oa("ns_st_vt", a, !0); var d = [b, c], e = ka(f.VIDEO, ia(d), ja(d)); Ra.notifyChangeVideoTrack(a, e, ia(d)) } } function fa(a, b, c) { if (!ib && !jb) { if (!g.enableSubtitleTrackChangeNotification) return void oa("ns_st_tt", a, !0); var d = [b, c], e = ka(f.SUBS, ia(d), ja(d)); Ra.notifyChangeSubtitleTrack(a, e, ia(d)) } } function ga(a, b, c) { if (!ib && !jb) { if (!g.enableCdnChangeNotification) return void oa("ns_st_cdn", a, !0); var d = [b, c], e = ka(f.CDN, ia(d), ja(d)); Ra.notifyChangeCdn(a, e, ia(d)) } } function ha() { if (!ib && !jb && g.enableCustomEventNotification) { var a = ka(f.CUSTOM, ia(arguments), ja(arguments)); Ra.notifyCustomEvent(ia(arguments), a) } } function ia(a) { var b; return b = "object" == typeof a[0] ? a[0] : "object" == typeof a[1] ? a[1] : {} } function ja(a) { var b; return b = "number" == typeof a[0] ? a[0] : "number" == typeof a[1] ? a[1] : NaN } function ka(a, b, c) { for (var d = 0, e = Sa.length; d < e; d++) Sa[d](a, b); var f = NaN; return "number" != typeof c || isNaN(c) ? k.position && (f = k.position.call(Ea, a, b, c)) : f = c, f } function la(a, b, d, e) { var f = d || []; ya(f, a), za(f, a); var g; for (var h in a) a.hasOwnProperty(h) && (g = h.match(/^data-(.+)/)) && (a[g[1]] = a[h], delete a[h]); return e && 1 == e ? c.extend(a, gb) : (gb = {}, c.extend(gb, a)), eb = {}, ib = !!(a && a.hasOwnProperty("ns_st_skip") && a.ns_st_skip), Ra.getPlaybackSession().setAsset(a, b) } function ma(a, b) { return b && 1 == b ? c.extend(a, fb) : (fb = {}, c.extend(fb, a)), jb = !!(a && a.hasOwnProperty("ns_st_skip") && a.ns_st_skip), Ra.createPlaybackSession(a) } function na() { var a = Ra.getPlaybackSession(); return new d(a, la) } function oa(a, b, c) { var d = {}; return d[a] = b, pa(d, c) } function pa(a, b) { return b && 1 == b ? c.extend(a, hb) : c.extend(hb, a), Ra.setLabels(a) } function qa() { return hb } function ra(a) { return hb[a] } function sa(a, b, c) { c && 1 == c ? (gb.hasOwnProperty(a) || hb.hasOwnProperty(a) || Ra.getPlaybackSession().getAsset().setLabel(a, b), eb[a] = b) : (gb[a] = b, Ra.getPlaybackSession().getAsset().setLabel(a, b)) } function ta(a, b, c) { c && 1 == c ? fb.hasOwnProperty(a) || hb.hasOwnProperty(a) || Ra.getPlaybackSession().setLabel(a, b) : (fb[a] = b, Ra.getPlaybackSession().setLabel(a, b)) } function ua(a) { if (a) { var b = /([^=, ]+)\\s*=(\\s*("([^"]+?)"|\'([^\']+?)\'|[a-z0-9\\[\\]\\._-]+)\\s*\\+?)+\\s*/gi, c = a.match(b); for (var d in c) if (c.hasOwnProperty(d)) { var e = c[d].split("=", 2); if (2 == e.length) { var f = e[0].replace(/(^\\s+|\\s+$)/g, ""); "" != f && (Va[f] = e[1]) } } } } function va(a) { if (a) { var b = a.split(","); for (var c in b) if (b.hasOwnProperty(c)) { var d = b[c].split("=", 2); if (2 == d.length) { var e = d[0].replace(/(^\\s+|\\s+$)/g, ""); "" != e && (Ra.setLabel(e, d[1]), hb[e] = d[1]) } } } } function wa(a) { if (c.isTrue(a.pageView || a.pageview)) { var b = {}; if ("undefined" != typeof document) { var d = document; b.c7 = d.URL, b.c8 = d.title, b.c9 = d.referrer } Ra.setLabels(b) } a.renditions, Wa = c.isTrue(a.debug), (a.labelMapping || a.labelmapping) && ua(a.labelMapping || a.labelmapping), (a.persistentLabels || a.persistentlabels) && va(a.persistentLabels || a.persistentlabels), "1" === a.throttling || a.throttling === !0 ? Ra.setThrottlingEnabled(!0) : Ra.setThrottlingEnabled(!1); var e; (e = a.include) && "string" == typeof e && (e === Ga ? Ba = Ga : e.length > 0 && (Ba = e.split(","))), Ba !== Ga && (e = a.includePrefixes || a.include_prefixes) && (e === Ga ? Ba = Ga : (Ba || (Ba = []), Ta = Ba.length, Ba.push.apply(Ba, e.split(",")))); var f = /^([Cc][A-Da-d]_)?ns_st_.+/, g = /^[Cc][A-Da-d]?([1-9]|1[0-9]|20)$/, h = a.exclude; if ("string" == typeof h) if (Ba || h) if (Ba && !h) lb = [], Ca = []; else if (h == Ga) lb = [], Ca = Ga; else { var i = h.split(","); Ca = Ba ? i : Ga; for (var j = 0; j < i.length; j++) { var k = null != i[j].match(f), l = null != i[j].match(g); (k || l) && lb.push(i[j]) } } else lb = [], Ca = Ga; var m = a.excludePrefixes || a.exclude_prefixes; Ba && Ca != Ga && "string" == typeof m && (m == Ga ? Ca = Ga : (Ca || (Ca = []), Ua = Ca.length, Ca.push.apply(Ca, m.split(",")))), Ca || (Ca = Ga) } function xa(a) { var b, c, d, e, f = {}; if (Ca === Ga) return {}; if (Ba && Ba !== Ga) { for (b = 0, c = Ba.length; b < c; b++) { var g = Ba[b]; e = Ta >= 0 && b >= Ta; for (d in a) a.hasOwnProperty(d) && (f[d] || (f[d] = !(e ? 0 !== d.indexOf(g) : d != g))) } for (d in f) f.hasOwnProperty(d) && f[d] === !1 && delete a[d]; f = {} } if (Ca) for (b = 0, c = Ca.length; b < c; b++) { var h = Ca[b]; e = Ua >= 0 && b >= Ua; for (d in a) a.hasOwnProperty(d) && (e ? 0 === d.indexOf(h) : d == h) && (f[d] = !0); for (d in f) f.hasOwnProperty(d) && a.hasOwnProperty(d) && delete a[d]; f = {} } return a } function ya(a, b) { var d = Ca === Ga; if (a.length > 0 && "undefined" != a[0].map) { var e = a[0].map; d || c.extend(b, xa(e)); for (var f in e) if (e.hasOwnProperty(f)) { var g, h, i, j = /^([Cc][A-Da-d]_)?ns_st_.+/, k = /^[Cc][A-Da-d]?([1-9]|1[0-9]|20)$/; (g = f.match(/^data-(.+)/)) ? (h = null != g[1].match(j), i = null != g[1].match(k), (h || i) && lb.indexOf(g[1]) === -1 && (b[g[1]] = e[f])) : (h = null != f.match(j), i = null != f.match(k), (h || i) && lb.indexOf(f) === -1 && (b[f] = e[f])) } } } function za(a, b) { var d = Ea.labelMapping; for (var e in d) if (d.hasOwnProperty(e)) for (var f = "", g = /^("([^"]+)"|\'([^\']+?)\'$)/i, h = /"([^"]+?)"|[a-z0-9\\[\\]\\._-]+|\'([^\']+?)\'\\s*/gi, i = d[e].match(h), j = 0; j < i.length; j++) { var k = i[j].replace(/(?:^\\s+|\\s+$)/g, ""); if (g.test(k)) { var l = g.exec(k); f += l[2] || l[3] } else try { var m = "", n = k.lastIndexOf("."); n >= 1 && n < k.length - 1 && (m = k.substring(0, n), k = k.substring(n + 1, k.length)); for (var o = 0; o < a.length; o++) { var p = a[o]; if (m == p.prefix) { p.map[k] && (f += c.toString(p.map[k])); break } } } catch (q) { Aa("Exception occurred while processing mapped labels") } b[e] = f } } function Aa() { if (Wa) { var a = new Date, b = a.getDate(), c = a.getMonth() + 1, d = a.getHours(), e = a.getMinutes(), f = a.getSeconds(), g = a.getFullYear() + "-" + (c < 10 ? "0" + c : c) + "-" + (b < 10 ? "0" + b : b) + " " + (d < 10 ? "0" + d : d) + ":" + (e < 10 ? "0" + e : e) + ":" + (f < 10 ? "0" + f : f) + "." + a.getMilliseconds(), h = ["comScore", g], i = Array.prototype.slice.call(arguments); "undefined" != typeof console && console.log.apply(console, h.concat(i)) } } k = k || {}; var Ba, Ca, Da, Ea = this, Fa = "2.6.0.170905", Ga = "_all_", Ha = 10, Ia = 500, Ja = 1e3, Ka = [ [-1, 1], [-.5, 0, .5], [-.3, -.1, .1, .3], [-.2, -.1, 0, .1, .2], [-.14286, -.08571, -.02857, .02857, .08571, .14286], [-.10714, -.07143, -.03571, 0, .03571, .07143, .10714], [-.08333, -.05952, -.03571, -.0119, .0119, .03571, .05952, .08333], [-.06667, -.05, -.03333, -.01667, 0, .01667, .03333, .05, .06667], [-.05455, -.04242, -.0303, -.01818, -.00606, .00606, .01818, .0303, .04242, .05455], [-.04545, -.03636, -.02727, -.01818, -.00909, 0, .00909, .01818, .02727, .03636, .04545], [-.03846, -.03147, -.02448, -.01748, -.01049, -.0035, .0035, .01049, .01748, .02448, .03147, .03846], [-.03297, -.02747, -.02198, -.01648, -.01099, -.00549, 0, .00549, .01099, .01648, .02198, .02747, .03297] ], La = 1.25, Ma = 2, Na = 300, Oa = 1e3, Pa = 6, Qa = 50, Ra = {}, Sa = [], Ta = -1, Ua = -1, Va = {}, Wa = !1, Xa = !1, Ya = !1, Za = !1, $a = !1, _a = !1, ab = k.position && k.position.call(Ea, null) || 0, bb = NaN, cb = [], db = !1, eb = {}, fb = {}, gb = {}, hb = {}, ib = !1, jb = !1, kb = !0, lb = []; l(), c.isTrue(g.pageView || g.pageview) && b.viewNotify(Ra.getLabels(), Ra); var mb = !1 } var c = c || {}; c.indexOf = function(a, b) { var c = -1; return this.forEach(b, function(b, d) { b == a && (c = d) }), c }, c.forEach = function(a, b, c) { try { if ("function" == typeof b) if (c = "undefined" != typeof c ? c : null, "number" != typeof a.length || "undefined" == typeof a[0]) { var d = "undefined" != typeof a.__proto__; for (var e in a) a.hasOwnProperty(e) && (!d || d && "undefined" == typeof a.__proto__[e]) && "function" != typeof a[e] && b.call(c, a[e], e) } else for (var f = 0, g = a.length; f < g; f++) b.call(c, a[f], f) } catch (h) {} }; var c = c || {}; c.parseBoolean = function(a, b) { return b = b || !1, a ? "0" != a : b }, c.parseInteger = function(a, b) { return null == a || isNaN(a) ? b || 0 : parseInt(a) }, c.parseLong = function(a, b) { var c = Number(a); return null == a || isNaN(c) ? b || 0 : c }, c.toString = function(a) { if ("undefined" == typeof a) return "undefined"; if ("string" == typeof a) return a; if (a instanceof Array) return a.join(","); var b = ""; for (var c in a) a.hasOwnProperty(c) && (b += c + ":" + a[c] + ";"); return b || a.toString() }; var c = c || {}; c.filter = function(a, b) { var c = {}; for (var d in b) b.hasOwnProperty(d) && a(b[d]) && (c[d] = b[d]); return c }, c.extend = function(a) { var b, c = arguments.length; a = a || {}; for (var d = 1; d < c; d++) if (b = arguments[d]) for (var e in b) b.hasOwnProperty(e) && (a[e] = b[e]); return a }; var c = c || {}; c.cloneObject = function(a) { if (null == a || "object" != typeof a) return a; var b = function() { function a() {} function b(b) { return "object" == typeof b ? (a.prototype = b, new a) : b } function c(a) { for (var b in a) a.hasOwnProperty(b) && (this[b] = a[b]) } function d() { this.copiedObjects = []; var a = this; this.recursiveDeepCopy = function(b) { return a.deepCopy(b) }, this.depth = 0 } function e(a, b) { var c = new d; return b && (c.maxDepth = b), c.deepCopy(a) } function f(a) { return "undefined" != typeof window && window && window.Node ? a instanceof Node : "undefined" != typeof document && a === document || "number" == typeof a.nodeType && a.attributes && a.childNodes && a.cloneNode } var g = []; return c.prototype = { constructor: c, canCopy: function() { return !1 }, create: function(a) {}, populate: function(a, b, c) {} }, d.prototype = { constructor: d, maxDepth: 256, cacheResult: function(a, b) { this.copiedObjects.push([a, b]) }, getCachedResult: function(a) { for (var b = this.copiedObjects, c = b.length, d = 0; d < c; d++) if (b[d][0] === a) return b[d][1] }, deepCopy: function(a) { if (null === a) return null; if ("object" != typeof a) return a; var b = this.getCachedResult(a); if (b) return b; for (var c = 0; c < g.length; c++) { var d = g[c]; if (d.canCopy(a)) return this.applyDeepCopier(d, a) } throw new Error("Unable to clone the following object " + a) }, applyDeepCopier: function(a, b) { var c = a.create(b); if (this.cacheResult(b, c), this.depth++, this.depth > this.maxDepth) throw new Error("Maximum recursion depth exceeded."); return a.populate(this.recursiveDeepCopy, b, c), this.depth--, c } }, e.DeepCopier = c, e.deepCopiers = g, e.register = function(a) { a instanceof c || (a = new c(a)), g.unshift(a) }, e.register({ canCopy: function() { return !0 }, create: function(a) { return a instanceof a.constructor ? b(a.constructor.prototype) : {} }, populate: function(a, b, c) { for (var d in b) b.hasOwnProperty(d) && (c[d] = a(b[d])); return c } }), e.register({ canCopy: function(a) { return a instanceof Array }, create: function(a) { return new a.constructor }, populate: function(a, b, c) { for (var d = 0; d < b.length; d++) c.push(a(b[d])); return c } }), e.register({ canCopy: function(a) { return a instanceof Date }, create: function(a) { return new Date(a) } }), e.register({ canCopy: function(a) { return f(a) }, create: function(a) { return "undefined" != typeof document && a === document ? document : a.cloneNode(!1) }, populate: function(a, b, c) { if ("undefined" != typeof document && b === document) return document; if (b.childNodes && b.childNodes.length) for (var d = 0; d < b.childNodes.length; d++) { var e = a(b.childNodes[d]); c.appendChild(e) } } }), { deepCopy: e } }(); return b.deepCopy(a) }; var c = c || {}; c.getNamespace = function() { return a.ns_ || a }, c.uid = function() { var a = 1; return function() { return +new Date + "_" + a++ } }(), c.isEmpty = function(a) { return void 0 === a || null === a || "" === a || a instanceof Array && 0 === a.length }, c.isNotEmpty = function(a) { return !this.isEmpty(a) }, c.safeGet = function(a, b) { return b = this.exists(b) ? b : "", this.exists(a) ? a : b }, c.isTrue = function(a) { return "undefined" != typeof a && ("string" == typeof a ? (a = a.toLowerCase(), "true" === a || "1" === a || "on" === a) : !!a) }, c.regionMatches = function(a, b, c, d, e) { if (b < 0 || d < 0 || b + e > a.length || d + e > c.length) return !1; for (; --e >= 0;) { var f = a.charAt(b++), g = c.charAt(d++); if (f != g) return !1 } return !0 }, c.exists = function(a) { return "undefined" != typeof a && null != a }, ! function() { var a = [], b = !1, d = !0, e = 1e3; c.onSystemClockJump = function(c, f) { a.push(c), b || (b = !0, e = f || e, d = +new Date, setInterval(function() { var b = d + e, c = +new Date; d = c; var f = c - b; if (Math.abs(f) > e) for (var g = 0; g < a.length; ++g) a[g](f > 0) }, e)) } }(); var c = c || {}; c.hasPageVisibilityAPISupport = function() { if ("undefined" == typeof document) return !1; var a = !1; return "undefined" != typeof document.hidden ? a = !0 : "undefined" != typeof document.mozHidden ? a = !0 : "undefined" != typeof document.msHidden ? a = !0 : "undefined" != typeof document.webkitHidden && (a = !0), function() { return a } }(), c.getPageVisibilityAPI = function() { if ("undefined" == typeof document) return null; var a, b, c; "undefined" != typeof document.hidden ? (a = "hidden", b = "visibilitychange", c = "visibilityState") : "undefined" != typeof document.mozHidden ? (a = "mozHidden", b = "mozvisibilitychange", c = "mozVisibilityState") : "undefined" != typeof document.msHidden ? (a = "msHidden", b = "msvisibilitychange", c = "msVisibilityState") : "undefined" != typeof document.webkitHidden && (a = "webkitHidden", b = "webkitvisibilitychange", c = "webkitVisibilityState"); var d = { hidden: a, visibilityChange: b, state: c }; return function() { return d } }(), c.isTabInBackground = function() { if ("undefined" == typeof document) return null; var a = c.getPageVisibilityAPI(); return function() { return document[a.hidden] } }(), c.getBrowserName = function() { if (!navigator) return ""; var a, b, c = navigator.userAgent || "", d = navigator.appName || ""; return (b = c.indexOf("Opera")) != -1 || (b = c.indexOf("OPR/")) != -1 ? d = "Opera" : (b = c.indexOf("Android")) != -1 ? d = "Android" : (b = c.indexOf("Chrome")) != -1 ? d = "Chrome" : (b = c.indexOf("Safari")) != -1 ? d = "Safari" : (b = c.indexOf("Firefox")) != -1 ? d = "Firefox" : (b = c.indexOf("IEMobile")) != -1 ? d = "Internet Explorer Mobile" : "Microsoft Internet Explorer" == d || "Netscape" == d ? d = "Internet Explorer" : (a = c.lastIndexOf(" ") + 1) < (b = c.lastIndexOf("/")) ? (d = c.substring(a, b), d.toLowerCase() == d.toUpperCase() && (d = navigator.appName)) : d = "unknown", d }, c.getBrowserFullVersion = function() { if (!navigator) return ""; var a, b, c, d, e = navigator.userAgent || "", f = navigator.appName || "", g = navigator.appVersion ? "" + parseFloat(navigator.appVersion) : ""; return (b = e.indexOf("Opera")) != -1 ? (g = e.substring(b + 6), (b = e.indexOf("Version")) != -1 && (g = e.substring(b + 8))) : (b = e.indexOf("OPR/")) != -1 ? g = e.substring(b + 4) : (b = e.indexOf("Android")) != -1 ? g = e.substring(b + 11) : (b = e.indexOf("Chrome")) != -1 ? g = e.substring(b + 7) : (b = e.indexOf("Safari")) != -1 ? (g = e.substring(b + 7), (b = e.indexOf("Version")) != -1 && (g = e.substring(b + 8))) : (b = e.indexOf("Firefox")) != -1 ? g = e.substring(b + 8) : "Microsoft Internet Explorer" == f ? (d = new RegExp("MSIE ([0-9]{1,}[.0-9]{0,})"), null != d.exec(e) && (g = parseFloat(RegExp.$1))) : "Netscape" == f ? (d = new RegExp("Trident/.*rv:([0-9]{1,}[.0-9]{0,})"), null != d.exec(e) && (g = parseFloat(RegExp.$1))) : g = e.lastIndexOf(" ") + 1 < (b = e.lastIndexOf("/")) ? e.substring(b + 1) : "unknown", g = g.toString(), (c = g.indexOf(";")) != -1 && (g = g.substring(0, c)), (c = g.indexOf(" ")) != -1 && (g = g.substring(0, c)), (c = g.indexOf(")")) != -1 && (g = g.substring(0, c)), a = parseInt("" + g, 10), isNaN(a) && (g = "" + parseFloat(navigator.appVersion)), g }, c.browserAcceptsLargeURLs = function() { return "undefined" == typeof window || (null !== window.ActiveXObject, !0) }, c.isBrowser = function() { return "undefined" != typeof window && "undefined" != typeof document }, c.isWebSecure = function() { return "undefined" != typeof document && null != document && "s" === document.location.href.charAt(4); }; var d = (function() { var a = 1e4; return function(b, c) { function d(a) { a = a || []; var c = [h, +new Date]; return b && c.push(b), a = Array.prototype.slice.call(a), c = c.concat(a) } function e(a) { var b, d, e; if ("boolean" == typeof c || !c) return !!c; if (e = a.join(" "), c instanceof Array && c.length > 0) { for (b = 0; b < c.length; ++b) if (d = c[b], d instanceof RegExp && d.test(e)) return !0; return !1 } if ("object" == typeof c) { var f = !1; if (c.hide instanceof Array) for (b = 0; b < c.hide.length; ++b) if (d = c.hide[b], d instanceof RegExp && d.test(e)) { f = !0; break } if (c.show instanceof Array) for (b = 0; b < c.show.length; ++b) if (d = c.show[b], d instanceof RegExp && d.test(e)) return !0; return !f && !c.show } return !0 } function f(b) { var d = i.length; (d > a || c && c.max && d > c.max) && (i = i.slice(-Math.floor(c.max / 2)), i.push("Previous logs: " + d)), i.push(b) } var g = this, h = "comScore", i = []; g.log = function() { var a = d(arguments); f(a), "undefined" != typeof console && "function" == typeof console.log && e(a) && console.log.apply(console, a) }, g.warn = function() { var a = d(arguments); f(a), "undefined" != typeof console && "function" == typeof console.warn && e(a) && console.warn.apply(console, a) }, g.error = function() { var a = d(arguments); f(a), "undefined" != typeof console && "function" == typeof console.error && e(a) && console.error.apply(console, a) }, g.apiCall = function(a) { for (var b = ["API call to:", a], c = 1; c < arguments.length; ++c) b.push("arg" + c + ":", arguments[c]); this.log.apply(this, b) }, g.infoLog = function() { var a = ["Trace log:"]; a.push.apply(a, Array.prototype.slice.call(arguments)), this.log.apply(this, a) }, g.deprecation = function(a, b) { var c = ["Deprecated API:", a, "is deprecated and will be eventually removed."]; b && c.push("Use", b, "instead."), this.warn.apply(this, c) }, g.getLogHistory = function() { return i } } }(), function() { function a(a, c) { for (var d = this, e = 0; e < b.length; ++e) { var f = b[e]; d[f] = function(b) { return function() { return a[b].apply(a, Array.prototype.slice.call(arguments)) } }(f) } d.setAsset = function() { c.apply(null, Array.prototype.slice.call(arguments)) } } var b = ["getAsset", "getLabels", "setLabels", "setLabel", "getLabel", "getPlaybackSessionID"]; return a }()), e = a.StreamingAnalytics.InternalStates, f = a.StreamingAnalytics.PlayerEvents; b.prototype = a.StreamingAnalytics.prototype, a.StreamingAnalytics.Plugin = b, b.extractParams = function(a, b, c) { var d, e, f, g = b.length, h = {}, i = a.indexOf(b); if ("undefined" == typeof c && (c = "&"), i >= 0) for (f = a.substr(i + g).split(c), d = 0, e = f.length; d < e; d++) { var j = f[d].split("="); 2 === j.length && (h[j[0]] = decodeURIComponent(j[1])) } return h }, b.viewNotify = function(a, b) { var d, e; c.isBrowser() ? (d = window, e = document) : (d = {}, e = { location: { href: "" }, title: "", URL: "", referrer: "", cookie: "" }); var f = b.getLiveEndpointURL(), g = "undefined", h = d.comScore || d.sitestat || function(a) { var f, h, i, j, k, l = "comScore=", m = e.cookie, n = "", o = "indexOf", p = "substring", q = "length", r = c.browserAcceptsLargeURLs() ? d.ns_.StreamingAnalytics.Constants.URL_LENGTH_LIMIT : d.ns_.StreamingAnalytics.Constants.RESTRICTED_URL_LENGTH_LIMIT, s = "&ns_", t = "&", u = d.encodeURIComponent || escape; if (m[o](l) + 1) for (j = 0, i = m.split(";"), k = i[q]; j < k; j++) h = i[j][o](l), h + 1 && (n = t + unescape(i[j][p](h + l[q]))); a += s + "_t=" + +new Date + s + "c=" + (e.characterSet || e.defaultCharset || "") + n, a.length > r && a.indexOf(t) > 0 && (f = a.substr(0, r - 8).lastIndexOf(t), a = (a.substring(0, f) + s + "cut=" + u(a.substring(f + 1))).substr(0, r)), b.getPlatformAPI().httpGet(a), typeof d.ns_p === g && (d.ns_p = { src: a }), d.ns_p.lastMeasurement = a }, i = decodeURIComponent || unescape, j = {}, k = f.indexOf("?"); if (k >= 0 && k < f.length - 1) { for (var l = f.substring(k + 1).split("&"), m = 0, n = l.length; m < n; m++) { var o = l[m], p = o.split("="); 2 == p.length && (j[p[0]] = i(p[1])) } f = f.substring(0, k + 1) } var q = j; if (typeof a !== g) { for (var r in a) a.hasOwnProperty(r) && (q[r] = a[r]); var s = [], t = d.encodeURIComponent || escape; for (r in q) s.push(t(r) + "=" + t(q[r])); /[\\?\\&]$/.test(f) || (f += "&"), f += s.join("&") } return h(f) } }), function(a) { "use strict"; return "undefined" != typeof ns_ && ns_.StreamingAnalytics.Plugin ? void a(ns_) : void("undefined" != typeof console && console.error && console.error("The comScore Streaming Analytics library was not properly loaded.")) }(function(a) { function b(b) { function d(a, b) { if (!V) { var c = R; return !ha && ba ? (R = 0, S = 0) : (R = a, S = b), ca && !ha ? (ca = !1, void(R < M ? p(0) : p())) : (!U || $ || _ || p(), aa && !ha ? (aa = !1, void p()) : void(ha && ea && (!ia && !T && a == c && a < b ? (ja++, ja >= O && (K.notifyPause(a), ia = !0)) : ia || (ja = 0), Q["freewheel-ads-manager"] && (ia ? (clearTimeout(ka), ka = null) : (clearTimeout(ka), ka = setTimeout(function() { ka = null, K.notifyPause(a), ia = !0 }, la))), ia && c != a && 0 != a && (K.notifyPlay(c), ia = !1), T = !1))) } } function e(a) { Q = a } function f(a) { P = null, Y = a.embedCode, ba = !1, Z = 1, T = !0, K.createPlaybackSession(D(), !0) } function g(a) { W = a, K.getPlaybackSession().setAsset(C(W), !1, E(), !0), ba && K.getPlaybackSession().getAsset().setLabels({ ns_st_po: "0", ns_st_upc: "0", ns_st_dupc: "0", ns_st_iupc: "0", ns_st_upa: "0", ns_st_dupa: "0", ns_st_iupa: "0", ns_st_lpc: "0", ns_st_dlpc: "0", ns_st_lpa: "0", ns_st_dlpa: "0" }) } function h(a) { X = {}; for (var b in a.base) a.base.hasOwnProperty(b) && "string" == typeof a.base[b] && (X[b] = c.decodeHexString(a.base[b])) } function i() { ca = !0 } function j() { ha = !0, fa = R, ga = S } function k() { ha = !1, T = !0, R = fa, da && (fa > 0 && Z++, g(W)), da = !1 } function l(a) { T = !0, ea = !0, da = !0, K.getPlaybackSession().setAsset(C(a.adMetadata), !1, E(), !0), ia = !0 } function m() { K.notifyEnd(R), clearTimeout(ka), ka = null, ea = !1 } function n() { ha && ea && (K.notifyPlay(R), ja = 0, ia = !1, clearTimeout(ka), ka = null) } function o(a) { /*a.streamType == OO.Analytics.STREAM_TYPE.LIVE_STREAM && (ba = !0, K.getPlaybackSession().getAsset().setLabels({ ns_st_po: "0", ns_st_upc: "0", ns_st_dupc: "0", ns_st_iupc: "0", ns_st_upa: "0", ns_st_dupa: "0", ns_st_iupa: "0", ns_st_lpc: "0", ns_st_dlpc: "0", ns_st_lpa: "0", ns_st_dlpa: "0" }))*/ } function p(a) { if (!ca && (!ha || ea)) { var b = null == a ? R : a; T ? (clearTimeout(r.timer), r.timer = null, T = !1) : U && !V ? (K.log("play only buffer"), s()) : U && V ? (K.log("play buffer and seeking"), s(), V = !1) : V && (K.log("play only seeking"), V = !1), K.log("play", b), K.notifyPlay(b), $ = !0, _ = !1 } } function q() { function a() { V && (K.log("Quick pause while seeking."), V = !1), K.log("pause", b), K.notifyPause(b), $ = !1, _ = !0 } if (ha) return void u(); var b = R; (ba || isNaN(S) || b != S) && a() } function r() { function a() { K.log("processBufferStart"), V && (V = !1), U || (K.log("bufferStart", b), K.notifyBufferStart(b)), $ = !1, U = !0, T = !1 } if (!ha) { var b = R; T && !ca ? r.timer || (r.timer = setTimeout(a, L)) : a() } } function s() { ha || U && (K.log("bufferStop"), K.notifyBufferStop(), U = !1) } function t() { ha || U && (K.log("bufferCompleted"), s()) } function u() { var a = R; K.log("end", a), K.notifyEnd(a), $ = !1 } function v(a) { V = !0; var b = R; K.log("seekDetected", b), K.notifySeekStart(b), aa = $, $ = !1, R = a } function w(a) { V && (V = !1) } function x() { u() } function y() { Z = 1, R = NaN, S = NaN } function z(a) { K.getPlaybackSession().getAsset().setLabel("ns_st_cu", a.streamUrl), P = a.streamUrl } function A(a) { K.setLabel("ns_st_ws", a.changingToFullscreen ? "full" : "norm") } function B(a) { K.setLabel("ns_st_vo", Math.floor(100 * a.currentVolume)) } function C(a) { var b = {}; return b.ns_st_cs = "0x0", a.contentType && "Video" == a.contentType ? b.ns_st_ty = "video" : a.contentType && "Audio" == a.contentType ? b.ns_st_ty = "audio" : a.contentType && (b.ns_st_ty = "unknown"), a.title && (b.ns_st_pl = a.title, b.ns_st_pr = a.title, b.ns_st_ep = a.title), ha ? (b.ns_st_cl = a.adDuration ? Math.floor(1e3 * a.adDuration) : "0", b.ns_st_pn = "1", b.ns_st_tp = "1", b.ns_st_ad = "1", b.ns_st_ct = "va00", 0 == fa || ca ? (b.ns_st_ad = "pre-roll", b.ns_st_ct = "va11") : !isNaN(ga) && ga - N < fa ? (b.ns_st_ad = "post-roll", b.ns_st_ct = "va13") : (b.ns_st_ad = "mid-roll", b.ns_st_ct = "va12")) : (b.ns_st_cl = a.duration || 0, b.ns_st_ci = Y, b.ns_st_pn = Z, b.ns_st_tp = "0", b.ns_st_ct = "vc00", P && (b.ns_st_cu = P), a.contentType && "Audio" == a.contentType && (b.ns_st_ct = "ac00"), X.ns_st_ct && (b.ns_st_ct = X.ns_st_ct), X.ns_st_ty ? !X.ns_st_ct || 0 != X.ns_st_ct.indexOf("ac") && 0 != X.ns_st_ct.indexOf("aa") ? b.ns_st_ty = "video" : b.ns_st_ty = "audio" : b.ns_st_ty = "video"), b } function D() { var a = {}; return a } function E() { return [{ prefix: "", map: X }, { prefix: "VideoContentMetadata", map: W }] } var F, G = "ComScoreOoyalaPlugin", H = "1.3.0.170908", I = "4", J = null, K = null, L = 300, M = 500, N = 500, O = 2, P = null, Q = null, R = 0, S = NaN, T = !0, U = !1, V = !1, W = null, X = {}, Y = null, Z = 1, $ = !1, _ = !1, aa = !1, ba = !1, ca = !1, da = !1, ea = !1, fa = 0, ga = NaN, ha = !1, ia = !1, ja = 0, ka = null, la = 2e3; this.getName = function() { return G }, this.getVersion = function() { return H }, this.setPluginID = function(a) { F = a }, this.getPluginID = function() { return F }, this.init = function() {}, this.setMetadata = function(b) { !K && b && (J = b, K = new a.StreamingAnalytics.Plugin(b, "ooyala", H, I, {}), K.setSmartStateDetection(!1)) }, this.processEvent = function(a, b) { /*if (K || K.log("ComScoreOoyalaPlugin is not properly initialised, ignoring event", a, b), b[0] ? K.log("Ooyala event:", a, b[0]) : K.log("Ooyala event:", a), a == OO.Analytics.EVENTS.VIDEO_PLAYER_CREATED) e(b[0]); else if (a == OO.Analytics.EVENTS.STREAM_TYPE_UPDATED) o(b[0]); else if (a == OO.Analytics.EVENTS.VIDEO_PLAYING) p(); else if (a == OO.Analytics.EVENTS.VIDEO_PAUSED) q(); else if (a == OO.Analytics.EVENTS.VIDEO_BUFFERING_STARTED) r(); else if (a == OO.Analytics.EVENTS.VIDEO_BUFFERING_ENDED) t(); else if (a == OO.Analytics.EVENTS.PLAYBACK_COMPLETED) y(); else if (a == OO.Analytics.EVENTS.VIDEO_CONTENT_COMPLETED) x(); else if (a == OO.Analytics.EVENTS.VIDEO_SEEK_REQUESTED) { var c = Math.floor(1e3 * b[0].seekingToTime); v(c) } else if (a == OO.Analytics.EVENTS.VIDEO_SEEK_COMPLETED) { var s = Math.floor(1e3 * b[0].timeSeekedTo); w(s) } else if (a == OO.Analytics.EVENTS.VIDEO_SOURCE_CHANGED) f(b[0]); else if (a == OO.Analytics.EVENTS.VIDEO_STREAM_METADATA_UPDATED) h(b[0]); else if (a == OO.Analytics.EVENTS.VIDEO_CONTENT_METADATA_UPDATED) g(b[0]); else if (a == OO.Analytics.EVENTS.VIDEO_REPLAY_REQUESTED) i(); else if (a == OO.Analytics.EVENTS.AD_BREAK_STARTED) j(); else if (a == OO.Analytics.EVENTS.AD_BREAK_ENDED) k(); else if (a == OO.Analytics.EVENTS.AD_STARTED) l(b[0]); else if (a == OO.Analytics.EVENTS.AD_ENDED) m(); else if (a == OO.Analytics.EVENTS.VIDEO_PLAY_REQUESTED) n(); else if (a == OO.Analytics.EVENTS.VIDEO_STREAM_POSITION_CHANGED) { var u = Math.floor(1e3 * b[0].streamPosition), C = Math.floor(1e3 * b[0].totalStreamDuration); d(u, C) } else a == OO.Analytics.EVENTS.VIDEO_ELEMENT_CREATED ? z(b[0]) : a == OO.Analytics.EVENTS.FULLSCREEN_CHANGED ? A(b[0]) : a == OO.Analytics.EVENTS.VOLUME_CHANGED && B(b[0])*/ }, this.destroy = function() { b = null } } var c = {}, c = c || {}; c.decodeHexString = function(a) { return a.replace(/([0-9A-Fa-f]{2})/g, function() { return String.fromCharCode(parseInt(arguments[1], 16)) }) } });\n\n\n\t\n\t\n \n\t\n\n',
language:"html"}}]},{id:"RLd314226ecfa2451aa8cf9b45f077bf9b",name:"Direct Call Rule - CNA Luxury",events:[{modulePath:"core/src/lib/events/directCall.js",settings:{identifier:"cnaluxpageview"},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/queryStringParameter.js",settings:{name:"view",value:"embedNoPageView"},negate:!0}],actions:[{modulePath:"adobe-analytics/src/lib/actions/setVariables.js",settings:{customSetup:{source:function(e,t){function n(){}function a(){if(!window.s_loadT){var e=(new Date).getTime(),t=window.performance?performance.timing:0,n=t?t.requestStart:window.inHeadTS||0;s_loadT=n?Math.round((e-n)/100):""}return s_loadT}t.loadModule("Media"),t.Media.autoTrack=!1,t.Media.trackMilestones="25,50,75,90",t.Media.segmentByMilestones=!0,t.Media.playerName="cna_online_ooyalaplayer",t.Media.trackWhilePlaying=!0,t.Media.trackUsingContextData=!0,t.Media.trackVars="events,eVar13,eVar21,eVar22,,eVar24,prop10",t.Media.trackEvents="event22,event23,event24,event10,event14,event16,event17,event90",t.Media.contextDataMapping={"a.media.name":"eVar13,prop10","a.media.playerName":"eVar22","a.media.segment":"eVar21","a.contentType":"eVar24","a.media.timePlayed":"event10","a.media.view":"event14","a.media.segmentView":"event17","a.media.complete":"event16","a.media.milestones":{25:"event22",50:"event23",75:"event24",90:"event90"}},t.usePlugins=!0,t.doPlugins=n,t.apl=new Function("l","v","d","u","var s=this,m=0;if(!l)l='';if(u){var i,n,a=s.split(l,d);for(i=0;i-1?i:l.length;a[x++]=l.substring(0,i);l=l.substring(i+d.length);}return a"),t.performanceTiming=new Function("v","var s=this;if(v)s.ptv=v;if(typeof performance!='undefined'){if(performance.timing.loadEventEnd==0){s.pi=setInterval(function(){s.performanceWrite()},250);}if(!s.ptc||s.linkType=='e'){s.performanceRead();}else{s.rfe();s[s.ptv]='';}}"),t.performanceWrite=new Function("","var s=this;if(performance.timing.loadEventEnd>0)clearInterval(s.pi);try{if(s.c_r('s_ptc')==''&&performance.timing.loadEventEnd>0){try{var pt=performance.timing;var pta='';pta=s.performanceCheck(pt.fetchStart,pt.navigationStart);pta+='^^'+s.performanceCheck(pt.domainLookupStart,pt.fetchStart);pta+='^^'+s.performanceCheck(pt.domainLookupEnd,pt.domainLookupStart);pta+='^^'+s.performanceCheck(pt.connectEnd,pt.connectStart);pta+='^^'+s.performanceCheck(pt.responseStart,pt.connectEnd);pta+='^^'+s.performanceCheck(pt.responseEnd,pt.responseStart);pta+='^^'+s.performanceCheck(pt.loadEventStart,pt.domLoading);pta+='^^'+s.performanceCheck(pt.loadEventEnd,pt.loadEventStart);pta+='^^'+s.performanceCheck(pt.loadEventEnd,pt.navigationStart);s.c_w('s_ptc',pta);if(sessionStorage&&navigator.cookieEnabled&&s.ptv!='undefined'){var pe=performance.getEntries();var tempPe='';for(var i=0;i-1?pe[i].name.split('?')[0]:pe[i].name;tempPe+='|'+(Math.round(pe[i].startTime)/1000).toFixed(1)+'|'+(Math.round(pe[i].duration)/1000).toFixed(1)+'|'+pe[i].initiatorType;}sessionStorage.setItem('s_pec',tempPe);}}catch(err){return;}}}catch(err){return;}"),t.performanceCheck=new Function("a","b","if(a>=0&&b>=0){if((a-b)<60000&&((a-b)>=0)){return((a-b)/1000).toFixed(2);}else{return 600;}}"),t.performanceRead=new Function("","var s=this;if(performance.timing.loadEventEnd>0)clearInterval(s.pi);var cv=s.c_r('s_ptc');if(s.pte){var ela=s.pte.split(',');}if(cv!=''){var cva=s.split(cv,'^^');if(cva[1]!=''){for(var x=0;x<(ela.length-1);x++){s.events=s.apl(s.events,ela[x]+'='+cva[x],',',2);}}s.events=s.apl(s.events,ela[ela.length-1],',',2);}s.linkTrackEvents=s.apl(s.linkTrackEvents,s.pte,',',2);s.c_w('s_ptc','',0);if(sessionStorage&&navigator.cookieEnabled&&s.ptv!='undefined'){s[s.ptv]=sessionStorage.getItem('s_pec');sessionStorage.setItem('s_pec','',0);}else{s[s.ptv]='sessionStorage Unavailable';}s.ptc=true;"),t.rfe=new Function("","var s=this;var ea=s.split(s.events,',');var pta=s.split(s.pte,',');try{for(x in pta){var ptr=new RegExp(pta[x]+'[^,][0-9]*.[0-9](.*)');s.events=s.events.match(ptr)[1];s.contextData['events']=s.events;}}catch(e){return;}"),t.getPercentPageViewed=new Function("n","var s=this,W=window,EL=W.addEventListener,AE=W.attachEvent,E=['load','unload','scroll','resize','zoom','keyup','mouseup','touchend','orientationchange','pan'];W.s_Obj=s;s_PPVid=(n=='-'?s.pageName:n)||s.pageName||location.href;if(!W.s_PPVevent){s.s_PPVg=function(n,r){var k='s_ppv',p=k+'l',c=s.c_r(n||r?k:p),a=c.indexOf(',')>-1?c.split(',',10):[''],l=a.length,i;a[0]=unescape(a[0]);r=r||(n&&n!=a[0])||0;a.length=10;if(typeof a[0]!='string')a[0]='';for(i=1;i<10;i++)a[i]=!r&&i0&&b>0?M.round(C*b/h):0,O=W.orientation,o=!isNaN(O)?M.abs(o)%180:Y>X?0:90,L=e=='load'||s_PPVi<1,a=s.s_PPVg(s_PPVid,L),V=function(i,v,f,n){i=parseInt(typeof a==J&&a.length>i?a[i]:'0')||0;v=typeof v!=N?i:v;v=f||v>i?v:i;return n?v:v>C?C:v<0?0:v};if(new RegExp('(iPod|iPad|iPhone)').exec(navigator.userAgent||'')&&o){o=x;x=y;y=o}o=o?'P':'L';a[9]=L?'':a[9].substring(0,1);s.c_w('s_ppv',escape(W.s_PPVid)+','+V(1,p,L)+','+(L||!V(2)?p:V(2))+','+V(3,b,L,1)+','+X+','+Y+','+x+','+y+','+r+','+a[9]+(a[9]==o?'':o))}if(!W.s_PPVt&&e!='unload')W.s_PPVt=setTimeout(W.s_PPVevent,333)};for(var f=W.s_PPVevent,i=0;ids&&dde||d=12){U=' PM';H=H-12;}if(H==0){H=12;}D=da[D];tm=H+':'+M+U;return(tm+'|'+D);}"),t.getNewRepeat=new Function("d","cn","var s=this,e=new Date(),cval,sval,ct=e.getTime();d=d?d:30;cn=cn?cn:'s_nr';e.setTime(ct+d*24*60*60*1000);cval=s.c_r(cn);if(cval.length==0){s.c_w(cn,ct+'-New',e);return'New';}sval=s.split(cval,'-');if(ct-sval[0]<30*60*1000&&sval[1]=='New'){s.c_w(cn,ct+'-New',e);return'New';}else{s.c_w(cn,ct+'-Repeat',e);return'Repeat';}"),String.prototype.endsWith=function(e){var t=this.length-e.length;return 0<=t&&this.lastIndexOf(e)===t},t.getValOnce=new Function("v","c","e","t","var s=this,a=new Date,v=v?v:'',c=c?c:'s_gvo',e=e?e:0,i=t=='m'?60000:86400000,k=s.c_r(c);if(v){a.setTime(a.getTime()+e*i);s.c_w(c,v,e==0?0:a);}return v==k?'':v"),t.prop32=(1/6*a()).toFixed(2),t.prop32&&(t.eVar78="D=c32")}},trackerProperties:{}}},{modulePath:"adobe-analytics/src/lib/actions/setVariables.js",settings:{customSetup:{source:function(e,t){try{localStorage.setItem("pagename-counter",2);var n=mcDataLayer.pagename.split(":");t.pageName=_satellite.getVar("DE - Page Name"),t.prop1=_satellite.getVar("DE - Division"),t.prop1&&(t.eVar1="D=c1"),t.prop2=_satellite.getVar("DE - Site New"),t.prop2&&(t.eVar2="D=c2"),t.channel=_satellite.getVar("DE - Channel"),t.prop3="D=ch",t.prop3&&(t.eVar3="D=ch"),3\n\n\n\n\n \n
\n
\n \n',language:"html"}}]},{id:"RLe2af5fbd83cd4c63845145665984256b",name:"Event - Social Share Footer",events:[{modulePath:"core/src/lib/events/click.js",settings:{bubbleStop:!1,anchorDelay:100,elementSelector:"a[href='https://www.facebook.com/ChannelNewsAsia'],a[href='https://twitter.com/Channelnewsasia'],a[href='https://www.linkedin.com/company/channel-newsasia'],a[href='https://www.youtube.com/user/channelnewsasia']",bubbleFireIfParent:!0,bubbleFireIfChildFired:!0},ruleOrder:50}],conditions:[],actions:[{modulePath:"adobe-analytics/src/lib/actions/setVariables.js",settings:{customSetup:{source:function(e,t){t.linkTrackVars="eVar82,events",t.linkTrackEvents="event86";var n=e.element,a=n.href.split("/")[2].split(".")[1].charAt(0).toUpperCase()+n.href.split(".")[1].substring(1);t.eVar82="Share on "+a,t.events="event86"}},trackerProperties:{}}},{modulePath:"adobe-analytics/src/lib/actions/sendBeacon.js",settings:{type:"link",linkName:"CNA Event",linkType:"o"}},{modulePath:"adobe-analytics/src/lib/actions/clearVariables.js",settings:{}}]},{id:"RLec706bc9c0574c948ddb175f045145e4",name:"Event - Podcast Downloads",events:[{modulePath:"core/src/lib/events/click.js",settings:{anchorDelay:100,elementSelector:".player__button",bubbleFireIfParent:!0,bubbleFireIfChildFired:!0},ruleOrder:50}],conditions:[],actions:[{modulePath:"adobe-analytics/src/lib/actions/setVariables.js",settings:{customSetup:{source:function(e,t){t.linkTrackVars="prop73,eVar9,eVar31,eVar84,eVar85,eVar86,events",t.linkTrackEvents="event19",t.events="event19",t.eVar31=$(this).parent().parent().find(".player__detail-title").text().trim(),t.eVar9="D=pageName",t.prop73=_satellite.readCookie("UID"),t.prop73&&(t.eVar35="D=c73"),t.eVar84=_satellite.cookie.get("_cc_id"),"undefined"!=_satellite.readCookie("cX_P")&&(t.eVar85=_satellite.readCookie("cX_P")),"undefined"!=_satellite.readCookie("SSOID")&&(t.eVar86=_satellite.readCookie("SSOID"))}},trackerProperties:{}}},{modulePath:"adobe-analytics/src/lib/actions/sendBeacon.js",settings:{type:"link",linkName:"CNA Event",linkType:"o"}},{modulePath:"adobe-analytics/src/lib/actions/clearVariables.js",settings:{}}]},{id:"RLf45daf82b89b4c54984ebecd449cc201",name:"Page Load - GA Page View",events:[{modulePath:"core/src/lib/events/pageBottom.js",settings:{},ruleOrder:50}],conditions:[],actions:[{modulePath:"google-universal-analytics/src/lib/actions/sendPageView.js",settings:{}}]},{id:"RLffe38ed6839a4b83987a75289e96c896",name:"Page Load - Heart Beat CNA",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/subdomain.js",settings:{subdomains:[{value:"cnaluxury",valueIsRegex:!0},{value:"cnalifestyle",valueIsRegex:!0}]},negate:!0},{modulePath:"core/src/lib/conditions/path.js",settings:{paths:[{value:"/podcasts",valueIsRegex:!0}]},negate:!0}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{
source:'\n\n\t\n\t\n \n\t\n\n',
language:"html"}}]},{id:"RL359024c9bb1e4aebbfa38edcbb4ea529",name:"Page Load - Search Results Lux and Lifestyle",events:[{modulePath:"core/src/lib/events/pageBottom.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/pathAndQuerystring.js",settings:{paths:[{value:"/search",valueIsRegex:!0}]}},{modulePath:"core/src/lib/conditions/subdomain.js",settings:{subdomains:[{value:"cnalifestyle",valueIsRegex:!0},{value:"cnaluxury",valueIsRegex:!0}]}}],actions:[{modulePath:"adobe-analytics/src/lib/actions/setVariables.js",settings:{customSetup:{source:function(e,t){console.log("Page View Rule"),localStorage.setItem("pagename-counter",2);var n=mcDataLayer.pagename.split(":");t.pageName=_satellite.getVar("DE - Page Name"),t.prop1=_satellite.getVar("DE - Division"),t.prop1&&(t.eVar1="D=c1"),t.prop2=_satellite.getVar("DE - Site New"),t.prop2&&(t.eVar2="D=c2"),t.channel=_satellite.getVar("DE - Channel"),t.prop3="D=ch",t.prop3&&(t.eVar3="D=ch"),3 ")),e):c(e,t)}},se=function(i){return function(e,t){if("string"==typeof e)i[arguments[0]]=t;else if(arguments[0]){var n=arguments[0];for(var a in n)i[a]=n[a]}}},oe=setTimeout;r.prototype["catch"]=function(e){return this.then(null,e)},r.prototype.then=function(e,t){var n=new this.constructor(a);return s(this,new d(e,t,n)),n},r.prototype["finally"]=t,r.all=function(t){return new r(function(i,r){function s(t,e){try{if(e&&("object"==typeof e||"function"==typeof e)){var n=e.then;if("function"==typeof n)return void n.call(e,function(e){s(t,e)},r)}o[t]=e,0==--c&&i(o)}catch(a){r(a)}}if(!l(t))return r(new TypeError("Promise.all accepts an array"));var o=Array.prototype.slice.call(t);if(0===o.length)return i([]);for(var c=o.length,e=0;e
China's COVID-19 testing blunders stemmed from secret deals with firms, finds AP investigation
Asia
China's COVID-19 testing blunders stemmed from secret deals with firms, finds AP investigation
Medical workers take swab samples from residents to be tested for COVID-19 in a street in Wuhan in China's central Hubei province, May 15, 2020. (Photo: AFP)
03 Dec 2020 02:31PM
Bookmark
WUHAN: Secrecy and cronyism at China's top disease control agency led to widespread test shortages and flaws that hampered the early response to the coronavirus outbreak, an Associated Press investigation has found.
China's Centre for Disease Control and Prevention (CDC) gave test kit designs and distribution rights exclusively to three then-obscure Shanghai companies with which officials had personal ties, according to the investigation.
It was based on interviews with more than 40 doctors, CDC employees, health experts and industry insiders, as well as hundreds of internal documents, contracts, messages and emails.
The Shanghai companies – GeneoDx Biotech, Huirui Biotechnology and BioGerm Medical Technology – paid the China CDC for the information and the distribution rights, according to two sources with knowledge of the transaction who asked to remain anonymous to avoid retribution.
The price: 1 million yuan (US$146,600) each, the sources said. It is unclear whether the money went to specific individuals.
In the meantime, the CDC and its parent agency, the National Health Commission, tried to prevent other scientists and organisations from testing for the virus with their own homemade kits. They took control of patient samples and made testing requirements to confirm coronavirus cases much more complicated.
The flawed testing system – at a time when the virus could have been slowed – stopped scientists and officials from seeing how fast it was spreading. Chinese authorities failed to report a single new case between Jan 5 and Jan 17, even as hundreds were infected in Wuhan, the city where the virus was first detected.
The apparent lull in cases meant officials were slow to take early actions such as warning the public or barring large gatherings. It also caused critical shortages of testing kits, barring access to care for many who were infected.
The testing problems, along with other mistakes and delays, allowed the virus to rip through Wuhan undetected and spread across the world in a pandemic that has now sickened 64 million people and killed almost 1.5 million.
People wearing face masks to protect against the coronavirus wait to cross an intersection in Beijing, Nov 20, 2020. (Photo: AP/Mark Schiefelbein)
China was hardly the only country to grapple with testing. In the US, the CDC declined to use a WHO design and insisted on developing its own kits, which turned out to be faulty and led to even longer delays than in China. Still, the hiccups in China were especially consequential because it was the first country to detect the virus.
"Because you have only three companies providing testing kits, it kept the capacity of testing very limited," said Yanzhong Huang, a senior fellow for global health at the Council on Foreign Relations. "It was a major problem that led to the rapid increase in cases and deaths."
China's foreign ministry and China's top medical agency, the National Health Commission, did not respond to requests for comment.
But interviews and documents suggest that a culture of backdoor connections quietly flourished in a top-down, underfunded public health system. Though none of the first three diagnostics companies tapped to make test kits were well-known in the industry, there were extensive ties between the companies and top China CDC researchers.
The founder of BioGerm, Zhao Baihui, was the former chief technician of the Shanghai CDC's microbiology lab. Emails and financial records obtained by the AP show that Zhao first started BioGerm's predecessor through an intermediary in 2012, while she was still at the Shanghai CDC.
In the next five years, she sold thousands of dollars' worth of test kits to her own workplace through the intermediary. After quitting the CDC in 2017, Zhao went on to spearhead lucrative contracts with Shanghai officials.
Zhao did not respond to requests for comment from the AP.
Another of the three companies, GeneoDx, enjoyed special access because it is a subsidiary of the state-run firm SinoPharm, which is managed directly by China’s Cabinet.
In October 2019, GeneoDx co-organised an internal CDC training conference on emerging respiratory diseases in Shanghai. Tan Wenjie, the CDC official who ran the training, was later put in charge of developing test kits.
GeneoDx did not respond to requests for comment or interviews. The National Health Commission did not respond to a request for a comment or an interview with Tan.
The last company, Huirui, is a longtime partner with Tan, the CDC official in charge of test kits. In an interview, CEO Li Hui said the CDC routinely contracted his company to make emergency testing chemicals. He denied any personal relationship with Tan or any payments to the CDC.
"We've been working with the CDC to respond to emerging new diseases for about 10 years, not just for a day or two, it's normal," Li said.
A man wearing a face mask to help curb the spread of COVID-19 cycles past a family taking a rest outside the drum tower, a tourist spot in Beijing, Nov 29, 2020. (Photo: AP/Andy Wong)
It's unclear whether the agreements between the China CDC and the three test kit companies violated Chinese law.
They raise questions around potential violations of bribery laws, along with rules against abuse of authority, self-dealing and conflicts of interest, said James Zimmerman, a Beijing-based corporate attorney and former chairman of the American Chamber of Commerce in China.
But other experts caution that the state may have designated the three companies to make test kits under special laws on the procurement of emergency goods during natural disasters.
"Things will be different in the middle of a crisis," said Lesli Ligorner, a Beijing-based attorney specialising in anti-corruption law. "I wouldn’t be so quick to rush to judgment."
The first step in making test kits is to get samples of the virus and decode its genetic sequence. This leads to test designs, essentially a recipe for the tests.
In past outbreaks, the China CDC sent test designs and testing compounds to laboratories across the country just days after identifying the pathogen. But this time, they held back the genome and test designs.
Instead, they finalised "technology transfer" agreements to give the test designs to the Shanghai companies, according to three people familiar with the matter. The selection process was kept secret.
At the same time, central CDC authorities stymied others from testing. Provincial CDC staff were told that instead of testing and reporting cases themselves, they had to send patient samples to designated labs in Beijing for full sequencing, a complicated and time-consuming procedure. As a result, for weeks, local CDC staff were unable to confirm new cases.
After a Jan 14 internal teleconference to order secret preparations for a pandemic, China's health authorities relaxed the requirements to confirm cases and started distributing the CDC-sanctioned test kits. A day after the first test kits finally arrived in Wuhan on Jan 16, the case count began to rise again.
But the test kits from GeneoDx and Huirui had quality issues, turning out inconclusive results or false negatives. And technicians were hesitant to use test kits that would later prove more accurate from more established companies, because the CDC did not endorse them.
As a result, in the early days, getting a COVID-19 test was so difficult that Wuhan residents compared it to winning the lottery.
Zhong Hanneng holds a photo of her son, Peng Yi, and talks about his difficulties in getting tested for COVID-19, eventually dying from the disease, on Oct 17, 2020. (Photo: AP/Ng Han Guan)
Among the victims was Peng Yi, a 39-year-old schoolteacher who started coughing on Jan 23. When he went to the hospital, he waited for eight hours, only to be turned away for a lack of test kits. Then, when he finally got tested on Jan 30, it turned out negative, even as the virus ravaged his lungs.
His second test, on Feb 4, turned out positive. It was too late. Weeks later, Peng passed away.
"There were very, very few tests, basically none ... if you couldn't prove you were positive, you couldn't get admitted to a hospital," his mother, Zhong Hanneng, said in a tearful interview in October.
"The doctor said there was nothing that could be done."
Download our app or subscribe to our Telegram channel for the latest updates on the coronavirus outbreak: https://cna.asia/telegram
Source: AP/dv